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

Posted

技术标签:

【中文标题】使用 touch.tapCount 确定按钮上的长按【英文标题】:using touch.tapCount to determine a longpress on a button 【发布时间】:2014-08-05 20:01:51 【问题描述】:

我正在做的事情在模拟器和我的 iPad2 上都有效,我没有遇到任何问题,但这不是记录在案的做事方式,所以我担心它可能不适用于较新的 iPad。

我有 UIButtons 可以区分触摸和长按。

按钮的构造与往常一样,有目标和动作,没有手势。

- (IBAction)buttonAction:(id)sender forEvent:(UIEvent*)event

  UIButton *button=(UIButton *)sender;

  bool longpress=NO;
  UITouch *touch=[[[event allTouches] allObjects] objectAtIndex:0];
  if(touch.tapCount==0) longpress=YES;

  switch(button.tag)
  
    case TAG:
    
        if(longpress)
        
              ... do longpress thing
        
        else
        
              ... do regular touch thing
        
        break;
    
    ...
  

【问题讨论】:

【参考方案1】:

为什么不创建一个UILongPressGestureRecognizer 并将其添加到按钮中。这是识别此类行为的首选方式。

【讨论】:

我正在做的工作,代码很简单。我想知道它是否适用于所有人,或者是否有其他人这样做过。

以上是关于使用 touch.tapCount 确定按钮上的长按的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 按钮上的长按手势以使用 AVFoundation 录制音频

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

UIButton上的长按手势识别器?

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

HTML 表单上的默认提交按钮是如何确定的?

如何在需要使用 Xamarin.UITest 访问 iOS 上的照片的权限对话框中点击确定按钮?