【问题标题】:iOS Swift UIWebView Link CoordinatesiOS Swift UIWebView 链接坐标
【发布时间】:2015-08-26 20:10:05
【问题描述】:

我需要获取在 UIWebView 中点击的链接的坐标。我尝试使用 TapGestureRecognizer 但点击链接时它不会触发。我以为我可以通过 stringByEvaluatingJavaScriptFromString 从 Javascript 获取坐标,但我也无法让它工作。我怎样才能做到这一点?

【问题讨论】:

  • 一个链接怎么会有“坐标”?

标签: ios swift uiwebview


【解决方案1】:

此答案的 Swift 等效项:How to detect touch on UIWebView

import UIKit

class ViewController: UIViewController, UIGestureRecognizerDelegate {

    let myWebView = UIWebView()

    override func viewDidLoad() {
        super.viewDidLoad()

        myWebView.frame = self.view.frame
        self.view.addSubview(myWebView)
        myWebView.loadRequest(NSURLRequest(URL: NSURL(string: "https://stackoverflow.com")!))

        let webViewTapped = UITapGestureRecognizer(target: self, action: "tapAction:")
        webViewTapped.numberOfTouchesRequired = 1
        webViewTapped.delegate = self
        myWebView.addGestureRecognizer(webViewTapped)
    }

    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return true
    }

    func tapAction(sender: UIGestureRecognizer) {
        let point = sender.locationInView(self.view)
        println(point.x)
        println(point.y)
    }

【讨论】:

  • 这正是我想要的!谢谢!
【解决方案2】:

UIView hitTest 可能有用。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event ;

在您的 Web 视图中覆盖它(或使用类别)可能允许您处理 Web 视图包含的项目的点击坐标,这些项目不会被手势识别器传递给超级视图

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多