touchesBegan - iPhone应用程序UIView

时间:2011-07-10 22:14:21

标签: iphone ios uiview uiviewcontroller touchesbegan

我有一个touchesBegan:方法可以正常工作。但是我最近在我的UIViewController中添加了一个UIView(一个按钮),现在按钮没有注册水龙头,但我的touchesBegan:方法是。

如何告诉我的touchesBegan:方法避开按钮?

以下是我当前的touchesBegan:方法:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event  {
    NSLog(@"touches began");
    UITouch *touch = [touches anyObject];   
    switch ([touch tapCount]) 
    {
        case 1:
            break;

        case 2:
            if(something)
                [doing something];

            break;

        default:
            break;
    }
}

2 个答案:

答案 0 :(得分:1)

确保按钮位于前面([self.view bringSubviewToFront: myButton])。然后你可以询问它在视图中发生的触摸:

if ([touch.view isEqualTo: myButton]) {
    NSLog(@"touch was on button");
}

答案 1 :(得分:0)

我遇到了同样的问题。当我将按钮移到前面时(在代码中通过UIViewController.bringSubviewToFront),当我点击按钮时,touchesBegan不再被触发。我在模拟器中运行Xcode 4.2。