我有一个我在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];
正在发生的事情是手势识别器仅应用于我添加到的最后一个按钮。如何将手势识别器添加到所有按钮?我需要为每个按钮换一个新的吗?
答案 0 :(得分:3)
您应该有三个UILongPressGestureRecognizer
实例。
在将手势识别器添加到新视图之前,addGestureRecognizer
方法将从已附加的视图中删除手势识别器。