我只想知道 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: .touchDown);
button.addTarget(self, action:#selector(BtnReleased(_:)), for: .touchUpInside);
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/