Objective c 在IOS中长按按钮
可能重复:Objective c 在IOS中长按按钮,objective-c,ios5,Objective C,Ios5,可能重复: 我已经从代码中创建了100个按钮。现在我想对长按按钮做出反应。 对于我称为enxt代码的每个按钮: UILongPressGestureRecognizer *longPressGesture = [[[UILongPressGestureRecognizer alloc] initWithTarget:self
我已经从代码中创建了100个按钮。现在我想对长按按钮做出反应。 对于我称为enxt代码的每个按钮:
UILongPressGestureRecognizer *longPressGesture = [[[UILongPressGestureRecognizer alloc]
initWithTarget:self
action:@selector(longPress:)]
autorelease];
[longPressGesture setMinimumPressDuration:1];
[button addGestureRecognizer:longPressGesture];
[self.view addSubview:button];
但未调用longPress
方法
有人知道为什么吗?很有可能,
UIButton
已经使用手势识别器来进行触摸操作。很可能在长时间点击识别器被允许看到触摸之前,点击手势就成功了,因此长时间点击永远不会被调用
我的建议是不要使用按钮,而是使用视图。您可以将长触摸手势识别器添加到视图中,并更改其外观行为,使其看起来和感觉像一个按钮,并能够保持长触摸。您可以查看对相关问题的回答:选择器中的
:
假设长按
接受一个参数。是这样吗?如果没有,请尝试在不使用:
的情况下构建正确的选择器。当然,self
也必须响应它。这是我方法的签名:-(void)longPress:(uilongpressgestureignizer*)手势。如果我将重标记器添加到视图中,而不是添加到按钮中,它就会起作用。但是我需要在代码中使用我自己创建的按钮,我看到它和我的代码在做同样的事情。不同的是,我的按钮是根据代码创建的。是否设置了其他手势(在superview上)?我已尝试使用view。它适用于view上的所有元素,但我只需要按钮。你误解了我。我是说完全使用视图而不是按钮。忘记使用按钮吧。让主视图有100个子视图,它们的行为类似于按钮,只需长按手势即可。