UIKit框架-高级控件Swift版本: 10.UIWebView方法/属性详解

前端之家收集整理的这篇文章主要介绍了UIKit框架-高级控件Swift版本: 10.UIWebView方法/属性详解前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前面我们已经讲解完了 UINavigationController 的一些常用属性以及方法,现在让我们来看看一个关于网络的 UIWebView.


1.UIWebView的常用属性

  1. // 1.设置 UIWebView 的代理对象
  2. var delegate: UIWebViewDelegate?
  3.  
  4. // 2.获取 UIWebView 的 UIScrollView 属性
  5. var scrollView: UIScrollView { get }
  6.  
  7. // 3.获取 UIWebView 的网络请求
  8. var request: NSURLRequest? { get }
  9.  
  10. // 4.获取 UIWebView 是否在接收数据的时候可以退后一步
  11. var canGoBack: Bool { get }
  12.  
  13. // 5.获取 UIWebView 是否在接收数据的时候可以前进一步
  14. var canGoForward: Bool { get }
  15.  
  16. // 6.获取 UIWebView 是否接受完数据
  17. var loading: Bool { get }
  18.  
  19. // 7.设置 UIWebView 接收的数据是否可以通过手势来调整页面内容大小
  20. var scalesPageToFit: Bool
  21.  
  22. // 8.设置 UIWebView 接收的数据是什么类型
  23. var dataDetectorTypes: UIDataDetectorTypes
  24.  
  25. // 9.设置 UIWebView 内是否可以回放媒体
  26. var allowsInlineMediaPlayback: Bool
  27.  
  28. // 10.设置 UIWebView 中的 HTML5 视频是否自动播放(默认是True)
  29. var mediaPlaybackRequiresUserAction: Bool
  30.  
  31. // 11.设置 UIWebView 是否可以使用 Air 播放(默认是True)
  32. var mediaPlaybackAllowsAirPlay: Bool
  33.  
  34. // 12.设置 UIWebView 是否使用同步加载(默认是False)
  35. var suppressesIncrementalRendering: Bool
  36.  
  37. // 13.设置 UIWebView 在点击视图或者元素时是否显示键盘(默认是True)
  38. var keyboardDisplayRequiresUserAction: Bool
  39.  
  40. // 14.设置 UIWebView 的分页模式
  41. var paginationMode: UIWebPaginationMode
  42.  
  43. // 15.设置 UIWebView 的分页打破模式
  44. var paginationBreakingMode: UIWebPaginationBreakingMode
  45.  
  46. // 16.设置 UIWebView 的分页长度
  47. var pageLength: CGFloat
  48.  
  49. // 17.设置 UIWebView 之间的页面宽度
  50. var gapBetweenPages: CGFloat
  51.  
  52. // 18.获取 UIWebView 的页面数量
  53. var pageCount: Int { get }@H_404_93@
  54. 常用类型

  55. // 1.获取 UIWebView 的数据类型
  56. struct UIDataDetectorTypes : RawOptionSetType {
  57.     init(_ rawValue: UInt)
  58.     init(rawValue: UInt)
  59.     static var PhoneNumber: UIDataDetectorTypes { get }
  60.     static var Link: UIDataDetectorTypes { get }
  61.     static var Address: UIDataDetectorTypes { get }
  62.     static var CalendarEvent: UIDataDetectorTypes { get }
  63.     static var None: UIDataDetectorTypes { get }
  64.     static var All: UIDataDetectorTypes { get }
  65. }
  66. // 2.设置 UIWebView 的 Navigation 类型
  67. enum UIWebViewNavigationType : Int {
  68.     case LinkClicked
  69.     case FormSubmitted
  70.     case BackForward
  71.     case Reload
  72.     case FormResubmitted
  73.     case Other
  74. }
  75. // 3.设置 UIWebView 的分页样式
  76. enum UIWebPaginationMode : Int {
  77.     case Unpaginated
  78.     case LeftToRight
  79.     case TopToBottom
  80.     case BottomToTop
  81.     case RightToLeft
  82. }
  83. // 4.设置 UIWebView 打破分页样式的样式
  84. enum UIWebPaginationBreakingMode : Int {
  85.     case Page
  86.     case Column
  87. }@H_404_93@ 
  88.  
  89.  

    2.UIWebView的代理方法

  90.  
    // 1.该方法是用来设置是否在 UIWebView 加载之前发送一个请求
  91.     optional func webView(webView: UIWebView,shouldStartLoadWithRequest request: NSURLRequest,navigationType: UIWebViewNavigationType) -> Bool
  92. // 2.该方法是在 UIWebView 在开发加载时调用
  93.     optional func webViewDidStartLoad(webView: UIWebView)
  94. // 3.该方法是在 UIWebView 加载完之后才调用
  95.     optional func webViewDidFinishLoad(webView: UIWebView)
  96. // 4.该方法是在 UIWebView 请求失败的时候调用
  97.     optional func webView(webView: UIWebView,didFailLoadWithError error: NSError)@H_404_93@ 
  98.  
  99.  

    3.代码示范

  100.  

    首先我们要使用storyBoard布局界面

  101.  

    关联控件

  102.  

    遵守代理协议

  103.  
    class ViewController: UIViewController,UIWebViewDelegate {
  104. }@H_404_93@ 
  105.  

    自定义UIWebVIew

  106.  
    func myWebView() {
  107.         // 1.获取 UIWebView 的 UIScrollView 属性
  108.         let webScroll = webView.scrollView
  109.         println("webScroll = \(webScroll)")
  110.         // 2.获取 UIWebView 的 request 属性
  111.         let webRequest = webView.request
  112.         println("webRequest = \(webRequest)")
  113.         // 3.获取 UIWebView 是否在接收数据的时候可以退后一步
  114.         let webCanBack = webView.canGoBack
  115.         println("webCanBack = \(webCanBack)")
  116.         // 4.获取 UIWebView 是否在接收数据的时候可以前进一步
  117.         let webCanGo = webView.canGoForward
  118.         println("webCanGo = \(webCanGo)")
  119.         // 5.获取 UIWebVIew 是否接受完数据
  120.         let webLoading = webView.loading
  121.         println("webLoading = \(webLoading)")
  122.         // 6.设置 UIWebView 接收的数据是否可以通过手势来调整页面内容大小
  123.         webView.scalesPageToFit = true
  124.         // 7.设置 UIWebView 接收到得数据是什么类型的
  125.         webView.dataDetectorTypes = UIDataDetectorTypes.All
  126.         // 8.设置 UIWebView 内是否可以回放媒体
  127.         webView.allowsInlineMediaPlayback = true
  128.         // 9.设置 UIWebView 中的 HTML5 视频是否自动播放
  129.         webView.mediaPlaybackRequiresUserAction = true
  130.         // 10.设置 UIWebView 是否可以使用 Air 播放
  131.         webView.mediaPlaybackAllowsAirPlay = true
  132.         // 11.设置 UIWebView 是否使用同步加载(默认是False)
  133.         webView.suppressesIncrementalRendering = false
  134.         // 12.设置 UIWebView 在点击视图或者元素时是否显示键盘(默认是True)
  135.         webView.keyboardDisplayRequiresUserAction = true
  136.         // 13.设置 UIWebView 的分页模式
  137.         webView.paginationMode = UIWebPaginationMode.RightToLeft
  138.         // 14.设置 UIWebView 的分页打破模式
  139.         webView.paginationBreakingMode = UIWebPaginationBreakingMode.Column
  140.         // 15.设置 UIWebView 的分页长度
  141.         webView.pageLength = 400
  142.         // 16.设置 UIWebView 每个分页之间的宽度
  143.         webView.gapBetweenPages = 100
  144.         // 17.获取 UIWebView 的分页数量
  145.         let webViewPageCount = webView.pageCount
  146.         println(webViewPageCount)
  147.         // 18.设置 UIWebView 的代理对象
  148.         webView.delegate = self
  149.         // 19.发送网络请求
  150.         var url:NSURL = NSURL(string:"http://www.baidu.com")!
  151.         var request:NSURLRequest = NSURLRequest(URL:url)
  152.         webView.loadRequest(request)
  153.     }@H_404_93@ 
  154.  

    实现代理方法

  155.  
    // 1.该方法是用来设置是否在 UIWebView 加载之前发送一个请求
  156.     func webView(webView: UIWebView,shouldStartLoadWithRequest request: NSURLRequest,navigationType: UIWebViewNavigationType) -> Bool {
  157.         return true
  158.     }
  159.     // 2.该方法是在 UIWebView 在开发加载时调用
  160.     func webViewDidStartLoad(webView: UIWebView) {
  161.         println("开始加载")
  162.     }
  163.     // 3.该方法是在 UIWebView 加载完之后才调用
  164.     func webViewDidFinishLoad(webView: UIWebView) {
  165.         println("加载完成")
  166.     }
  167.     // 4.该方法是在 UIWebView 请求失败的时候调用
  168.     func webView(webView: UIWebView,didFailLoadWithError error: NSError) {
  169.         println("加载失败")
  170.     }@H_404_93@ 
  171.  

    ViewDidLoad 方法中实现

  172.  
    override func viewDidLoad() {
  173.         super.viewDidLoad()
  174.         self.myWebView()
  175.     }@H_404_93@ 
  176.  

    PS: UIWebView 继承与 UIView,并且遵守了 UIScrollViewDelegate 协议,所以它可以使用里面的方法属性.

  177.  
  178.  

    好了,这次我们就讲到这里,下次我们继续~~

猜你在找的Swift相关文章