我有两个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中分配的任何其他标签冲突。
另一个选择是为每个识别器使用不同的处理函数。