在iPad应用中禁用UIImageView的手势识别器

时间:2013-03-27 04:14:30

标签: ios objective-c uiimageview uigesturerecognizer uipagecontrol

我有一个PageControl,每个页面(ViewController)都有不同数量的imageviewsUIImageView),这是动态创建的。

为每个imageview分配一个gesture recognizer (tapped or move)。由于这些内容位于PageControl内,因此我想启用/停用gesture recognizer,以便它不会干扰swipe页面事件。

我知道有一个removeGestureRecognizer方法,但我不想每次删除和附加它。是否只有启用和禁用的等效项?

由于

3 个答案:

答案 0 :(得分:3)

您可以使用UIGestureRecognizer的启用或禁用属性,如:

swipeGestureRecognizer.enabled = NO;

或者你可以使用手势识别器方法返回 null 如果你不想触摸

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

答案 1 :(得分:2)

如果你想同时禁用所有手势,你可以这样做

imageView.userIntractionEnabled = NO;

如果您只想禁用一个手势识别器,那么<​​/ p>

NSArray *gestures = imageView.gestureRecognizers;
for(UIGestureRecognizer *gesture in gestures)
{
    if([gesture isKindOfClass: [UITapGestureRecognizer class]])
    {
        gesture.enabled = NO;
    }

答案 2 :(得分:1)

您可以为userInteractionEnabled停用UIImageView吗?你可以在Interface Builder中做到这一点,或者你可以这样编程设置它 - imageView.userInteractionEnabled = NO;希望这有帮助...

enter image description here