Я хочу реализовать действие, которое при нажатии и удерживании начинает многократно выполнять действие (аналогично кнопке прокрутки в пользовательском интерфейсе рабочего стола).Есть ли первоклассная поддержка для этого в UIGestureRecognizer / events framework, или я просто свернул свой собственный?
Например,
var timer:Timer?
func killDing() {
self.timer?.invalidate()
self.timer = nil
}
func startDing() {
self.killTimer()
self.timer = Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) {
self.ding() // this is where the repeated code happens
}
}
override func beginTracking(_ touch:UITouch, with event:UIEvent?) -> Bool {
self.startDing()
}
override func endTracking(_ touch: UITouch?, with event: UIEvent?) {
super.endTracking(touch, with: event)
self.killDing()
}
Я, конечно, могу сделать это и с LongPressGestureRecognizer.Мой вопрос заключается в том, нужно ли мне развернуть свой собственный цикл дин, как показано выше, или есть ли в UIKit что-то более первоклассное, о чем я в данный момент не знаю и должен ли он воспользоваться.