识别ios中两个uibutton上的Longpress手势



我有两个uibutton,我想在它们上实现Longpressgesture

所以我写了下面的代码…

-(void)viewdidLoad
{
 UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(buttonLongPressed:)];
    longPress.minimumPressDuration = 0.5;
    [Button1 addGestureRecognizer:longPress];
    [Button2 addGestureRecognizer:longPress];
}
- (void)buttonLongPressed:(UILongPressGestureRecognizer *)sender
{    
    if(sender.state == UIGestureRecognizerStateBegan) 
    {        
    }   
}

现在我的疑问是如何检查哪个按钮是长按的?

谢谢Ranjit

首先,请注意手势识别器应该只附加到一个视图。您应该为每个按钮创建一个新实例。

要回答你的问题,你可以给你的按钮添加标签值:

Button1.tag = 1000;
Button2.tag = 1001;

然后在识别器中测试它们:

UIView *view = sender.view;
int tag = view.tag;
if (tag == 1000) {
...
}

你可以输入任何标签值,但我通常从1000这样的高值开始,以避免与我在Interface Builder中分配的任何其他标签冲突。

另一个选择是为每个识别器使用不同的处理函数。

最新更新