长按开始时,记下时间(开始)。当它取消、结束或失败时;可以选择从开始计算以秒为单位的距离。如果按下时间超过5秒,则MyView为红色。
class MyViewController : UIViewController {
var start: Date?
override func loadView() {
view = UIView()
view.isUserInteractionEnabled = true
view.addGestureRecognizer(UILongPressGestureRecognizer(target: self, action: #selector(tap)))
}
@objc func tap(gr: UILongPressGestureRecognizer) {
switch gr.state {
case .began:
start = Date()
case .failed, .cancelled, .ended:
guard let temp = start else { return }
let seconds = Date().timeIntervalSince(temp)
if seconds > 5 { myView.backgroundcolor = UIColor.red }
print(seconds)
default:
break
}
}
}