我有两个UI按钮,我想在两者上实现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)
{
}
}
现在我怀疑的是如何检查哪个按钮是长按?
由于 兰吉特
答案 0 :(得分:6)
首先,请注意,手势识别器应仅附加到<strong>一个视图。您应该为每个按钮创建一个新实例。
要回答您的问题,您可以为按钮添加标记值:
Button1.tag = 1000;
Button2.tag = 1001;
然后在识别器中测试它们:
UIView *view = sender.view;
int tag = view.tag;
if (tag == 1000) {
...
}
您可以输入任何标记值,但我经常以1000之类的高值开始,以避免与我在Interface Builder中分配的任何其他标记发生冲突。
另一个选择是为每个识别器使用不同的处理函数。