我在视图中有一个UILabel控件。我想检测触摸此标签时发生的触摸事件。我添加了以下代码,只要在视图上发生触摸,该代码就可以工作。
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
//只有在触摸标签时才应该调用此标记,而不是一直调用。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“http://www.mywebsite.com”]];
}
每当触摸到特定标签时,我的代码应该进一步处理,而不是在视图中的任何地方发生触摸时。如何在touchesEnded函数下找到特定标签(或)触摸的任何控件?
有人可以指导我吗?
谢谢。
答案 0 :(得分:1)
您可以通过在标签上执行hitTest来执行此操作:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint point = [[touches anyObject] locationInView:label];
if([label hitTest:point withEvent:nil]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.mywebsite.com"]];
} else {
[super touchesEnded:touches withEvent:event];
}
}