被淘汰的UIWebView的使用

133 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天

基础知识

UIWebView继承与UIView,是一个被淘汰的控件。

加载能力

  • UIWebView不仅可以加载 HTML 页面,还支持 pdf、word、txt 以及各种图片的显示;
  • 相比 UIWebView 而言,WKWebView 也支持各种文件格式,并新增了加载本地文件,即新增了 LoadFileURL 函数。

1.1 UIWebView加载网页请求

- (void)loadRequest:(NSURLRequest *)request;

UIWebView加载HTML

- (void)loadHTMLString:(NSString *)string baseURL:(nullable NSURL *)baseURL;
​

文本字段的使用

文本字段是一个用户界面元素,通过应用程序来获取用户输入。

一个UITextfield如下所示:

textfeild

重要的文本字段的属性

  • 在没有任何用户输入时,显示占位符
  • 正常文本
  • 自动更正型
  • 键盘类型
  • 返回键类型
  • 清除按钮模式
  • 对齐方式
  • 委托
委托调用的方法基于用户操作。要知道调用委托时请参阅控制台输出。
1.本文目的:掌握UIWebView的使用;
2.本文任务:完成UIWebView案例;
3.本文要求:
. 可结合TextField对案例功能进行拓展。
. 使用swift3.x,基于Xcode完成;
先找到webview,button,textFiled组件,并在故事版中以下列形式放置

image.png

给button绑定上testLoadHTMLString方法。用webview方法中的loadRequest去请求在文本框中输入的网址。

image.png

值得注意的是,我们访问一些网址要加上ALL Arbtrary Loads协议。

image.png

启动模拟器,手机模拟的状态如下

image.png

输入完成后,单击return 键,关闭键盘,结束编辑状态,此时日志会显示call should return ;

image.png

输入网址,按下return键,点击按钮,下方开始请求网址,如下图:

image.png

import UIKit
​
class ViewController: UIViewController ,UIWebViewDelegate,UITextFieldDelegate{
​
    @IBOutlet weak var textFiled: UITextField!
    @IBOutlet weak var webView: UIWebView!
 
    @IBAction func testLoadHTMLString(_ sender: Any) {
        
        let str=String (self.textFiled.text!)
        let url = URL.init(string: str)
        let request = URLRequest(url: url!)
        self.webView.loadRequest(request)
        self.webView.delegate=self
    }
 
    func textFieldDidEndEditing(_ textField: UITextField)->Bool {
        NSLog("call end editing");
        return  true ;
    }
    
    
    func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
        NSLog("call begin editing");
        return  true
    }
   
    
    
    func textFieldShouldEndEditing(_ textField: UITextField) -> Bool {
        return true
    }
    
    func textFieldDidEndEditing(_ textField: UITextField) {
        NSLog("call did end editing")
    }
    
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        NSLog("call should return ")
        return  true;
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.webView.delegate=self
        self.textFiled.delegate=self
        // Do any additional setup after loading the view, typically from a nib.
    }
​
​
}
​
​