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が起動されなくなりました。シミュレーターでXcode4.2を実行しています。

于 2012-01-07T18:51:32.043 に答える