В моем приложении я подклассифицировал UITableView
, чтобы перехватить события касания. Я использую это, чтобы позволить мне отображать жесты 3D Touch на весь вид (в том числе в верхней части таблицы).3D Touch force gesture активирует кран на касание на конце
Это прекрасно работает, однако проблема заключается в том, что использование 3D Touch на одной из ячеек, а затем отпускание пальца активирует кран.
Мне нужно активировать кран, если нет силы. Я должен объяснить, что постепенно меняю изображение по всему экрану при приложении давления.
Вот мой подкласс:
protocol PassTouchesTableViewDelegate {
func touchMoved(touches: Set<UITouch>)
func touchEnded(touches: Set<UITouch>)
}
class PassTouchesTableView: UITableView {
var delegatePass: PassTouchesTableViewDelegate?
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
super.touchesMoved(touches, withEvent: event)
self.delegatePass?.touchMoved(touches)
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
super.touchesEnded(touches, withEvent: event)
self.delegatePass?.touchEnded(touches)
}
}
А вот методы, которые я звоню из моей точки зрения контроллера, когда штрихи конца и двигаться:
internal func touchMoved(touches: Set<UITouch>) {
let touch = touches.first
self.pressureImageView.alpha = (touch!.force/2) - 1.0
}
internal func touchEnded(touches: Set<UITouch>) {
UIView.animateWithDuration(0.2, animations: {
self.pressureImageView.alpha = 0.0
})
}
Отлично работает. Благодаря! – user3746428