ios - 检测是否以特定时间间隔按下 UIButton

标签 ios swift uibutton

我只想知道 UIButton 是否在特定时间间隔内被按下。 (在我的代码中 2 秒) 以 2 秒为周期,如果按下按钮,则某些值应为 1,否则应为 2。

为了检查这一点,我在下面编写了代码。 但是 unexpected 结果即将到来,我不知道如何解决它。 帮帮我!

import UIKit

class ViewController: UIViewController {
    var gameTimer: Timer!

@IBAction func btnClick(_ sender: Any) {
    if let button = sender as? UIButton {
        if (button.isSelected) {
            print(" Not Selected");
        } else {
            print(" Selected");
        }
    }
}
override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    gameTimer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(btnClick(_:)), userInfo: nil, repeats: true)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
}

最佳答案

如果你想检查 UIButton 是否被按下,你应该处理 TouchDown处理程序并将按钮的状态更改为在 touchDown hadler 中按下。 您可以跟踪 ToucUpInside 方法以再次将按钮状态更改为未按下。

例如:

button.addTarget(self, action:#selector(BtnPressed(_:)), for: .touch​Down);

button.addTarget(self, action:#selector(BtnReleased(_:)), for: .touch​Up​Inside);


var buttonSelection:Bool = false

 func BtnPressed(_ sender: Any) 
 {
      button.selected = true

  }

 func BtnReleased(_ sender: Any) 
 {
      button.selected = false

  }

现在,您可以使用定时器来检查按钮的状态,如下所示:

 gameTimer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(IsButtonPressed()), userInfo: nil, repeats: true)



 func BtnPressed() 
 {

     if (button.isSelected) {
        print("Button is Pressed");
    } else {
        print("Not Pressed");
    }

  }

关于ios - 检测是否以特定时间间隔按下 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43223690/

相关文章:

ios - 使用 overflow-x : scroll; scrollable div using CSS 在 IOS 上使用加速/减速平滑 native 样式滑动滚动

ios - 无论枚举大小写如何,如何快速获得枚举的关联值

ios - 为什么 UIButton 需要点击两次来改变它的图像

ios - 如何在自定义 View 中将 subview 的框架设置为其父框架

ios - 检索 Firebase 数据库字符串并将字符串转换为整数以使标签不起作用

ios - 从 UIImageView 获取主色的坐标

ios - 如何在 iOS 上使用 swift 防止应用程序屏幕锁定

ios - Obj C ui 分段控件以取消/激活按钮

ios - UIImage 数组没有出现在 ios 模拟器中

ios - 获取任何包含 ID 核心数据的数据