iOS UIWebView 拦截点击事件(双击缩放)
2016-01-21 18:01
639 查看
在平时的开发中,要使用到webview,但类似微信的webview在数据没有加载完成的时候
双击屏幕,webview不会缩放,其实实现这个功能很简单
代码是用swift写的
核心思想就是在在webview的上边加一个透明的view,加载完成后移除,在加载过程中,拦截双击事件
双击屏幕,webview不会缩放,其实实现这个功能很简单
代码是用swift写的
class YYSimpleWebViewController: UIViewController,UIWebViewDelegate,UIGestureRecognizerDelegate { var urlS :NSURL? var cusWebView :UIWebView! var isLoaded = false let cover = UIView() init(WithUrl webUrl :NSURL?) { super.init(nibName: nil, bundle: nil) self.urlS = webUrl cusWebView = UIWebView() cusWebView.delegate = self NSURLCache.sharedURLCache().removeAllCachedResponses() NSURLCache.sharedURLCache().diskCapacity = 0 NSURLCache.sharedURLCache().memoryCapacity = 0 } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func viewDidLoad() { super.viewDidLoad() cusWebView.frame = self.view.bounds self.view.addSubview(cusWebView) cover.backgroundColor = UIColor.clearColor() cover.frame = cusWebView.bounds; cusWebView.scrollView.addSubview(cover) print(cusWebView.gestureRecognizers) let doubleTap = UITapGestureRecognizer(target: self, action: "tap") doubleTap.numberOfTapsRequired = 2 doubleTap.delegate = self cover.addGestureRecognizer(doubleTap) if self.urlS != nil { cusWebView.loadRequest(NSURLRequest(URL: self.urlS!)) } } func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { return true } func webViewDidFinishLoad(webView: UIWebView) { self.cover.removeFromSuperview() self.title = webView.stringByEvaluatingJavaScriptFromString("document.title") } func webView(webView: UIWebView, didFailLoadWithError error: NSError?) { self.cover.removeFromSuperview() } func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { return true } func tap() { }
核心思想就是在在webview的上边加一个透明的view,加载完成后移除,在加载过程中,拦截双击事件
相关文章推荐
- Android打开指定好友聊天,并可以判断是否安装qq
- Unity-DLL反编译学习
- Android Studio上修改SVN地址
- AndroidStudio插件GsonFormat快速实现JavaBean
- IDA6.6远程调试Android应用程序的一点总结
- Android学习历程8-Fragment详解
- android蓝牙遥控车
- Swift学习笔记:类和结构
- Android的ScrollView和ListView滑动冲突的问题
- Android之计算缓存大小并且清空缓存
- Unity-反编译由IL生成的DLL文件
- Android 支付宝 sdk 开发
- IOS常用正则表达式
- android笔记--保存和恢复activity的状态数据
- Android 讲解:Handler
- Unity学习笔记(5) --- Unity的界面排版:AutoLayout详解——关于高度height的计算
- Android的广播机制介绍
- Error using * LAPACK loading error: dlopen: cannot load any more object with static TLS
- 记录一下学Android遇到的坑 编译apk 手机出现两个应用,卸载的时候两个都卸载了。
- iOS开发--代码块 (得到状态栏,导航栏高度)