[Swift通天遁地]一、超级工具-(4)使用UIWebView(网页视图)加载HTML和Gif动画
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10140056.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示如何使用UIWebView(网页视图)加载HTML和Gif动画。
往项目中导入一张GIF图片(strengthen.gif)。
在项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit 2 3 class ViewController: UIViewController { 4 5 //添加一个网页视图对象,作为当前类的属性 6 var webView:UIWebView! 7 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 11 //获得当前设备的屏幕尺寸信息 12 let bounds = UIScreen.main.bounds 13 //创建一个矩形的显示区域 14 let frame = CGRect(x: 0, y: 40, width: bounds.width, height: bounds.height-40) 15 16 //初始化一个网页视图对象,并以矩形区域作为其显示区域 17 webView = UIWebView(frame: frame) 18 //设置网页视图的背景颜色为无色 19 webView.backgroundColor = UIColor.clear 20 //将网页视图添加到当前视图控制器的根视图 21 self.view.addSubview(webView) 22 23 //初始化一个按钮控件,并设置其显示区域。当用户点击该按钮时,将加载并渲染一段网页代码。 24 let loadHTML = UIButton(frame: CGRect(x: 40, y: 400, width: 240, height: 44)) 25 //设置按钮在正常状态下的标题文字 26 loadHTML.setTitle("Load Html", for: .normal) 27 //设置按钮的背景颜色为棕色 28 loadHTML.backgroundColor = UIColor.brown 29 //给按钮绑定点击事件 30 loadHTML.addTarget(self, action: #selector(ViewController.loadHTML), for: .touchUpInside) 31 32 //创建另一个按钮,当用户点击该按钮时,将加载项目中的Gif动画 33 let loadGIF = UIButton(frame: CGRect(x: 40, y: 470, width: 240, height: 44)) 34 //设置按钮在正常状态下的标题文字 35 loadGIF.setTitle("Load Gif", for: .normal) 36 //设置按钮的背景颜色为棕色 37 loadGIF.backgroundColor = UIColor.brown 38 //给按钮绑定点击事件 39 loadGIF.addTarget(self, action: #selector(ViewController.loadGIF), for: .touchUpInside) 40 41 //将两个按钮依次添加到当前视图控制器的根视图 42 self.view.addSubview(loadHTML) 43 self.view.addSubview(loadGIF) 44 } 45 46 //添加一个方法,用来加载并渲染一段网页代码 47 func loadHTML() 48 { 49 //初始化第一个字符串常量,用来表示一段网页代码。 50 //该网页代码用来显示一段文字,并设置文字的颜色为红色,尺寸为30像素 51 let team = "<div style='color:#ff0000;font-size:30px;'>Strengthen</div>" 52 //初始化第二个字符串常量,用来表示一段网页代码。 53 //该网页代码用来显示一行文字,并设置文字中的电话号码的颜色为红色。 54 let tel = "<div>Tel:<span style='color:#ff0000'>18812345678</span></div>" 55 //初始化第三个字符串常量,该网页代码用来显示一行文字,并设置文字加粗的视觉样式 56 let url = "<div><b>Website:https://www.cnblogs.com/strengthen/</b></div>" 57 //将三个字符串拼接为一个字符串, 58 //拼接后的字符串将作为网页视图的内容。 59 let html = team + tel + url 60 61 //设置网页视图的检测类型,网页视图将会突出显示符合该类型的内容 62 webView.dataDetectorTypes = [UIDataDetectorTypes.link, UIDataDetectorTypes.phoneNumber] 63 //调用网页视图读取网页代码的方法,加载刚刚创建的字符串常量 64 webView.loadHTMLString(html, baseURL: nil) 65 } 66 67 //添加一个方法,用来将加载项目中的Gif动画 68 func loadGIF() 69 { 70 //获得项目束的主目录,使网页视图可以加载项目主目录下的资源 71 let resourceURL = Bundle.main.resourceURL 72 //调用网页视图的加载网页字符串的方法,加载主目录下的Gif文件 73 webView.loadHTMLString("<img src='strengthen.gif'>", baseURL: resourceURL) 74 } 75 76 override func didReceiveMemoryWarning() { 77 super.didReceiveMemoryWarning() 78 // Dispose of any resources that can be recreated. 79 } 80 }