0

有没有办法从任何 UIObject(如 UItextView)中完全删除所有 UIGestureRecognisers?我试过这个但它不起作用:

[photoView removeGestureRecognizer:[photoView.gestureRecognizers objectAtIndex:0]];

注意:我不想禁用它们,因为我想在将来分配其他手势识别器。

4

2 回答 2

2

如果要删除所有内容,而不仅仅是:

[photoView removeGestureRecognizer:[photoView.gestureRecognizers objectAtIndex:0]];

你可以:

while ([photoView.gestureRecognizers count] > 0)
    [photoView removeGestureRecognizer:[photoView.gestureRecognizers objectAtIndex:0]];

顺便说一句,请注意,一些标准文本控件会在您进入和退出编辑模式时重新创建手势识别器,因此您可能必须相应地重复此过程。

于 2013-01-23T17:38:03.987 回答
0

使用以下代码停止任何手势识别器。

 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
    {

    // return NO when you want to stop.

if ( [gestureRecognizer isMemberOfClass:[UITapGestureRecognizer class]] ) {
        // Return NO for views that don't support Taps
    } else if ( [gestureRecognizer isMemberOfClass:[UISwipeGestureRecognizer class]] ) {
        // Return NO for views that don't support Swipes
    }

    return YES;

}
于 2013-01-23T17:17:11.330 回答