为 UIWebView 拦截 UITapGestureRecognizer
Intercept UITapGestureRecognizer for UIWebView
我想知道如何拦截 UIWebView
上的点击事件。似乎正确的手势是 UITapGestureRecognizer
,但我似乎无法获得正确的视图。我没能在 swift 中找到解决方案。我的层次结构是 View -> UIWebView
。我的用例是部署一个网络应用程序,并有一些基于网络视图导航的自定义操作。例如,能够识别我想要投放插页式广告或显示 UINavigationBar
的导航事件。感谢您的帮助!
import UIKit
class ViewController: UIViewController {
@IBOutlet var Webview: UIWebView!
let URLPath = "http://www.example.com"
func loadAddressURL(){
let requestURL = NSURL(string: URLPath)
let request = NSURLRequest(URL: requestURL!)
Webview.loadRequest(request)
}
override func viewDidLoad() {
super.viewDidLoad()
loadAddressURL()
NSLog("I'm getting going")
//NOT SURE IF YOU SHOULD DISABLE THIS OR NOT
//Webview.userInteractionEnabled=false
let tapRecognizer = UITapGestureRecognizer(target: self , action: "handleSingleTap:")
NSLog("I'm past the tab recognizer!\(tapRecognizer)")
tapRecognizer.numberOfTapsRequired = 1
Webview.addGestureRecognizer(tapRecognizer)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func handleSingleTap(recognizer: UITapGestureRecognizer) {
//
NSLog("I made it here")
}
}
先设置Gesture Delegate并继承geture UIGestureRecognizerDelegate
tapRecognizer.delegate = self
并插入此委托
func gestureRecognizer(UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer:UIGestureRecognizer) -> Bool
{
return true
}
试试这个也许会有帮助...
我想知道如何拦截 UIWebView
上的点击事件。似乎正确的手势是 UITapGestureRecognizer
,但我似乎无法获得正确的视图。我没能在 swift 中找到解决方案。我的层次结构是 View -> UIWebView
。我的用例是部署一个网络应用程序,并有一些基于网络视图导航的自定义操作。例如,能够识别我想要投放插页式广告或显示 UINavigationBar
的导航事件。感谢您的帮助!
import UIKit
class ViewController: UIViewController {
@IBOutlet var Webview: UIWebView!
let URLPath = "http://www.example.com"
func loadAddressURL(){
let requestURL = NSURL(string: URLPath)
let request = NSURLRequest(URL: requestURL!)
Webview.loadRequest(request)
}
override func viewDidLoad() {
super.viewDidLoad()
loadAddressURL()
NSLog("I'm getting going")
//NOT SURE IF YOU SHOULD DISABLE THIS OR NOT
//Webview.userInteractionEnabled=false
let tapRecognizer = UITapGestureRecognizer(target: self , action: "handleSingleTap:")
NSLog("I'm past the tab recognizer!\(tapRecognizer)")
tapRecognizer.numberOfTapsRequired = 1
Webview.addGestureRecognizer(tapRecognizer)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func handleSingleTap(recognizer: UITapGestureRecognizer) {
//
NSLog("I made it here")
}
}
先设置Gesture Delegate并继承geture UIGestureRecognizerDelegate
tapRecognizer.delegate = self
并插入此委托
func gestureRecognizer(UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer:UIGestureRecognizer) -> Bool
{
return true
}
试试这个也许会有帮助...