我正在寻找一种方法来查找给定(x,y)坐标处的UILabel的值(文本)。

所有其他问题似乎都与获取标签的[x,y]有关,我正尝试相反的做法...

例如(30,40)将在该位置返回Label的值。

谢谢!

更新

func getLabel(location: CGPoint){

  let view = self.view.hitTest(location, withEvent:nil)
  //I would like to get the value of the label here but I'm not sure how to.

}

@IBAction func tap(sender: UITapGestureRecognizer) {
    var coordinate = sender.locationInView(GraphView?())
    getLabel(coordinate)
}

最佳答案

您可以通过hit-testing完成此操作。

将所需的点传递到顶层视图,它将返回包含该点的视图层次结构中最深的视图。

UIView *view = [self.view hitTest:location withEvent:nil];

在Swift中,它看起来像
let selectedView = view.hitTest(location, withEvent: nil)

更新:

您需要将标签的userInteractionEnabled设置为true才能使标签注册匹配。

您需要检查返回的视图以查看是否为标签,然后检查其是否具有任何文本。
if let label = selectedView as? UILabel
{
    if label.text!
    {
        // .. do what you want with the label's text
    }
}

关于ios - 在Swift中获取坐标(x,y)处的UILabel值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32442112/

10-10 00:14