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中的长按按钮[重复]的主要内容,如果未能解决你的问题,请参考以下文章