2

我有一个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;
    }
}
4

2 回答 2

1

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

if ([touch.view isEqualTo: myButton]) {
    NSLog(@"touch was on button");
}
于 2011-07-10T22:24:32.027 回答
0

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

于 2012-01-07T18:51:32.043 回答