如何识别按住按钮 iPhone SDK

Posted

技术标签:

【中文标题】如何识别按住按钮 iPhone SDK【英文标题】:How to Recognize a Hold Button iPhone SDK如何识别按住按钮 iPhone SDK 【发布时间】:2010-05-21 16:55:31 【问题描述】:

嗨,我有一个按钮,我想按住这个按钮写点东西,但我不知道如何识别按住按钮,你能帮我吗?谢谢你

【问题讨论】:

【参考方案1】:

TouchDownInside 事件触发,启动一个 NStimer。 TouchUpInside 事件触发,取消定时器。 如果用户按住按钮,则让计时器调用您的方法来执行:计时器延迟将是识别按住所需的时间。

【讨论】:

【参考方案2】:

您也可以使用UILongPressGestureRecognizer。

在您的初始化方法中(例如viewDidLoad),创建一个手势识别器并将其附加到您的按钮:

UILongPressGestureRecognizer *gesture = [[UILongPressGestureRecognizer alloc] 
  initWithTarget:self 
  action:@selector(myButtonLongPressed:)];
// you can control how many seconds before the gesture is recognized  
gesture.minimumPressDuration = 2; 
// attach the gesture to your button
[myButton addGestureRecognizer:gesture];
[gesture release];

事件处理程序myButtonLongPressed: 应如下所示:

- (void) myButtonLongPressed:(UILongPressGestureRecognizer *)gesture

  // Button was long pressed, do something

请注意,UILongPressGestureRecognizer 是 continuous event recognizer。 当用户仍然按住按钮时,myButtonLongPressed: 将被多次调用。 如果你只是想处理第一个电话,你可以在myButtonLongPressed:查看状态:

if (gesture.state == UIGestureRecognizerStateBegan) 
  // Button was long pressed, do something

【讨论】:

以上是关于如何识别按住按钮 iPhone SDK的主要内容,如果未能解决你的问题,请参考以下文章

检测 iPhone 音量按钮保持? (iOS 8)

苹果 xs无法开机要怎么办?

在 iphone 中按住 uibutton 时增加一个值

苹果手机显示无sim卡怎么回事?

iphone6还原网络设置后白屏黑苹果怎么办

恢复IPHONE时显示未能恢复IPHONE发生错误21,是啥原因?