UIButton上的UILongPressGestureRecognizer无法正常工作

时间:2014-06-16 02:07:19

标签: ios objective-c uibutton xcode5 uigesturerecognizer

我有一个我在ViewDidLoad中创建的长按手势识别器然后附加到这样的按钮,该按钮在故事板中创建并链接到我的班级。

UILongPressGestureRecognizer *hold = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(secretChange:)];
hold.minimumPressDuration = 5.0;
hold.delegate = self;

[_button addGestureRecognizer:hold];

该类符合GestureRecognizer协议,我的选择器在这里

- (void)secretChange:(UILongPressGestureRecognizer *)sender {
    // Some stuff
    NSLog(@"Secret");
}

选择器没有被调用,我无法弄清楚为什么,这似乎是每个人在互联网上发布的代码,我已经尝试删除最小持续时间,以确保我没有意外地设置它可笑的长

更新:我实际上是将这个手势识别器添加到这样的多个按钮

[_button1 addGestureRecognizer:hold];
[_button2 addGestureRecognizer:hold];
[_button3 addGestureRecognizer:hold];

正在发生的事情是手势识别器仅应用于我添加到的最后一个按钮。如何将手势识别器添加到所有按钮?我需要为每个按钮换一个新的吗?

1 个答案:

答案 0 :(得分:3)

您应该有三个UILongPressGestureRecognizer实例。

在将手势识别器添加到新视图之前,addGestureRecognizer方法将从已附加的视图中删除手势识别器。