Ich habe eine UITableView
in meiner App subclassed, so dass ich Berührungsereignisse abfangen kann. Ich benutze dies, um mir 3D-Touch-Gesten auf der gesamten Ansicht (einschließlich oben auf der Tischansicht) zur Verfügung zu stellen.3D Touch Force Geste aktiviert Zelle tippen auf Touch-Ende
Dies funktioniert gut, aber das Problem ist, dass die Verwendung von 3D-Touch auf einer der Zellen und dann loslassen Sie Ihren Finger aktiviert die Zelle tippen.
Ich muss nur den Zellabgriff aktivieren, wenn keine Kraft ausgeübt wird. Ich sollte erklären, dass ich ein Bild allmählich über den gesamten Bildschirm verblasse, während Sie Druck ausüben.
Hier ist meine Unterklasse:
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)
}
}
Und hier sind die Methoden, die ich aus meiner Sicht Controller ich anrufen, wenn die Berührungen zu beenden und bewegen:
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
})
}
Funktioniert gut. Vielen Dank! – user3746428