swift4
- 通常のボタンタップとロングプレスを判定する
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var button: UIButton!
@IBOutlet weak var label: UILabel!
var timer: Timer?
override func viewDidLoad() {
super.viewDidLoad()
label.text = "0"
let longPress = UILongPressGestureRecognizer(target: self, action: #selector(self.longPress(gesture:)))
longPress.minimumPressDuration = 1
button.addGestureRecognizer(longPress)
}
@objc func longPress(gesture: UILongPressGestureRecognizer) {
if gesture.state == .began {
print("Long Press")
timer = Timer.scheduledTimer(withTimeInterval: 0.5, repeats: true) { (_) in
guard let _ = self.timer,
let text = self.label.text,
let count = Int(text) else { return }
self.label.text = String(count + 10)
}
}
if gesture.state == .ended {
timer?.invalidate()
}
}
@IBAction func normalButtonTap(sender: UIButton) {
print("Button tapped")
}
}