我正在寻找一种方法来查找给定(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/