IOS中的长按按钮[重复]

Posted

技术标签:

【中文标题】IOS中的长按按钮[重复]【英文标题】:Long button press in IOS [duplicate] 【发布时间】:2012-02-22 09:31:55 【问题描述】:

可能重复:UIButton long press with finger stationary

我已经从代码中创建了 100 个按钮。现在我想对长按按钮做出反应。 对于每个按钮,我调用了 enxt 代码:

UILongPressGestureRecognizer *longPressGesture = [[[UILongPressGestureRecognizer alloc]
                                                  initWithTarget:self
                                                  action:@selector(longPress:)]
                                                  autorelease];
[longPressGesture setMinimumPressDuration:1];
[button addGestureRecognizer:longPressGesture];
[self.view addSubview:button];

但是longPress 方法没有被调用。

有人知道为什么吗?

【问题讨论】:

选择器中的:假设longPress带有一个参数。是这样吗?如果没有,请尝试构建正确的选择器,而不使用 :。当然self也必须回复。 这是我的方法的签名:-(void)longPress:(UILongPressGestureRecognizer*)gesture。如果我将识别器添加到我的视图而不是按钮,它会起作用。但我需要使用自己在代码中创建的按钮。 【参考方案1】:

UIButton 很可能已经使用手势识别器进行触摸处理。在您的长按识别器被允许看到触摸之前,轻按手势也很可能成功,因此您的长按永远不会被调用。

我的建议是不要使用按钮,而是使用视图。您可以将长触摸手势识别器添加到视图中,并将其外观行为更改为按钮的外观和感觉,并能够保持长触摸。

【讨论】:

我尝试过使用视图,它适用于视图中的所有元素,但我只需要按钮。 你误会我了。我说的是完全使用视图而不是按钮。忘记使用按钮。拥有 100 个行为类似于按钮的子视图的主视图,只需长按手势即可。【参考方案2】:

您可以查看对相关问题的回复:https://***.com/a/6179591/536308

【讨论】:

我看到它和我的代码做同样的事情。不同的是我的按钮是用代码创建的。 是否设置了其他手势(在超级视图上)?

以上是关于IOS中的长按按钮[重复]的主要内容,如果未能解决你的问题,请参考以下文章

检测音量按钮的长按和短按 - iOS

如何处理bash脚本的waitkey功能中的长按按钮?

如何处理Android中的长按

SwiftUI - 如何检测按钮上的长按?

使用 touch.tapCount 确定按钮上的长按

在xCode中处理多个对象的长按的最佳方法