iPhone:如何在Touch下找到控件交互?

时间:2010-03-29 07:15:42

标签: iphone

我在视图中有一个UILabel控件。我想检测触摸此标签时发生的触摸事件。我添加了以下代码,只要在视图上发生触摸,该代码就可以工作。

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

{

//只有在触摸标签时才应该调用此标记,而不是一直调用。
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“http://www.mywebsite.com”]];

}

每当触摸到特定标签时,我的代码应该进一步处理,而不是在视图中的任何地方发生触摸时。如何在touchesEnded函数下找到特定标签(或)触摸的任何控件?

有人可以指导我吗?

谢谢。

1 个答案:

答案 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];
    }
}