beendet Ich habe den folgenden Code, der eine UIView schleppt. Alles funktioniert gut visuell.Ziehen UIView verliert die Geste, wenn
func moveView(sender: UIPanGestureRecognizer) {
let translate = sender.translationInView(self.view)
if sender.state == UIGestureRecognizerState.Changed {
sender.view!.center = CGPoint(x:sender.view!.center.x + translate.x, y:sender.view!.center.y + translate.y)
sender.setTranslation(CGPointZero, inView: self.view)
}
if sender.state == UIGestureRecognizerState.Ended {
let newX: CGFloat = sender.view!.center.x + translate.x
let newY: CGFloat = sender.view!.center.y + translate.y
sender.view!.center = CGPoint(x:newX, y:newY)
}
}
jedoch nach diesem drag Abschluss scheint die Ansicht, die die Geste Verbindung zu verlieren, so dass ich es nicht wieder ziehen oder eine Tippgeste mit ihrem verbundenen auslösen usw.
Wenn ich ein NSLog mich hinzufügen kann sehen, dass Klopfen, wo die Ansicht verwendet, um die Log löst aber nicht, wenn ich auf dem tatsächlichen aktuellen Ansicht Standort tippen.
ich die Geste etablieren innerhalb viewDidLoad mit folgendem zu sehen thisView
let moveGesture = UIPanGestureRecognizer(target: self, action: Selector("moveView:"))
thisView.addGestureRecognizer(moveGesture)
Was mir fehlt, dass die Gesten hält an der neuen Ansicht Standort verbunden?
Danke.
Ein sehr wichtigen Punkt in der Tat - vielen Dank. Dies scheint geholfen zu haben. Ich habe ein anderes Problem mit dem Ziehen gefunden, das die Ansicht hinter einem anderen Element positioniert, aber das ist ein anderes Problem, das behoben werden muss. – RobertyBob