0

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

每个imageview都分配一个gesture recognizer (tapped or move). 由于这些在 a 内PageControl,我想启用/禁用它,gesture recognizer这样它就不会干扰swipe到页面事件。

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

谢谢

4

3 回答 3

3

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

swipeGestureRecognizer.enabled = NO;

或者如果您不想触摸,可以使用手势识别器方法 return null

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
       shouldReceiveTouch:(UITouch *)touch;
于 2013-03-27T04:28:40.203 回答
2

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

imageView.userIntractionEnabled = NO;

如果您只想禁用一个手势识别器,那么

NSArray *gestures = imageView.gestureRecognizers;
for(UIGestureRecognizer *gesture in gestures)
{
    if([gesture isKindOfClass: [UITapGestureRecognizer class]])
    {
        gesture.enabled = NO;
    }
于 2013-03-27T04:36:37.040 回答
1

您可以userInteractionEnabled为此禁用UIImageView吗?如果您这样做,您可以在 Interface Builder 中执行此操作,或者您可以像这样以编程方式设置它 -imageView.userInteractionEnabled = NO;希望这会有所帮助......

在此处输入图像描述

于 2013-03-27T04:25:38.150 回答