zoukankan      html  css  js  c++  java
  • iOS UIWebView 拦截点击事件(双击缩放)

    在平时的开发中,要使用到webview,但类似微信的webview在数据没有加载完成的时候

    双击屏幕,webview不会缩放,其实实现这个功能很简单

    代码是用swift写的

     1 class YYSimpleWebViewController: UIViewController,UIWebViewDelegate,UIGestureRecognizerDelegate {
     2 
     3      var urlS :NSURL?
     4      var cusWebView :UIWebView!
     5      var  isLoaded = false
     6      let cover = UIView()
     7     
     8      init(WithUrl webUrl :NSURL?) {
     9         super.init(nibName: nil, bundle: nil)
    10         self.urlS = webUrl
    11         cusWebView = UIWebView()
    12         cusWebView.delegate = self
    13         NSURLCache.sharedURLCache().removeAllCachedResponses()
    14         NSURLCache.sharedURLCache().diskCapacity = 0
    15         NSURLCache.sharedURLCache().memoryCapacity = 0
    16     
    17     }
    18 
    19     required init?(coder aDecoder: NSCoder) {
    20         fatalError("init(coder:) has not been implemented")
    21     }
    22     
    23 
    24     
    25     override func viewDidLoad() {
    26         super.viewDidLoad()
    27         cusWebView.frame = self.view.bounds
    28         self.view.addSubview(cusWebView)
    29         
    30         
    31         cover.backgroundColor          = UIColor.clearColor()
    32         cover.frame                    = cusWebView.bounds;
    33         cusWebView.scrollView.addSubview(cover)
    34 
    35         print(cusWebView.gestureRecognizers)
    36         let doubleTap                  = UITapGestureRecognizer(target: self, action: "tap")
    37         doubleTap.numberOfTapsRequired = 2
    38         doubleTap.delegate             = self
    39         cover.addGestureRecognizer(doubleTap)
    40         
    41         if self.urlS != nil {
    42            
    43              cusWebView.loadRequest(NSURLRequest(URL: self.urlS!))
    44         }
    45        
    46         
    47     }
    48     func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    49         return true
    50     }
    51     
    52     func webViewDidFinishLoad(webView: UIWebView) {
    53         
    54         self.cover.removeFromSuperview()
    55         self.title = webView.stringByEvaluatingJavaScriptFromString("document.title")
    56     }
    57     
    58     func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
    59         self.cover.removeFromSuperview()
    60     }
    61     func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
    62         
    63         return true
    64     }
    65    
    66  
    67     func tap() {
    68         
    69     }

    核心思想就是在在webview的上边加一个透明的view,加载完成后移除,在加载过程中,拦截双击事件

  • 相关阅读:
    [转]HTTP请求模型和头信息参考
    括号匹配算法
    SQL LEFT JOIN 关键字 (转)
    Vim学习资料汇总
    与图相关的算法
    关于字符串的一些算法
    Huffman编码
    迅雷开放了下载引擎
    ubuntu下《UNIX环境高级编程》(apue.h)编译出错的处理方法
    学习unix信号
  • 原文地址:https://www.cnblogs.com/machao/p/5149179.html
Copyright © 2011-2022 走看看