【问题标题】:Recognizing Longpress gesture on two Uibuttons in ios识别 ios 中两个 Uibutton 上的 Longpress 手势
【发布时间】:2012-01-05 11:58:24
【问题描述】:

我有两个 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) 
    {        

    }   
}

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

谢谢 兰吉特

【问题讨论】:

    标签: ios


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    • 嘿,谢谢 tarmes 的回复。嘿,你的意思是我应该再创建一个 Longpress 实例并在其中添加另一个按钮,对吗?
    • 没错。也见这里:stackoverflow.com/questions/4747238/…
    • 那么我可以对两个不同的@selector 进行正确的处理,我的问题就可以解决了吗?
    • 这是另一种选择,是的。这取决于您的需求。
    • 嘿塔姆斯,请检查此链接并给我一些解决方案stackoverflow.com/questions/8255395/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多