Ich habe eine kleine Animation gehen, bekommt und wenn die Animation endet mag ich die App, um automatisch die nächsten ViewController
auf drücken. Nun, dass ViewController
wird wie 8 mal hintereinander gedrückt! Es ist ziemlich verrückt.animateWithDuration Completion Block Feuer immer und immer wieder
hier ist der Code:
if CGRectIntersectsRect(whichButton.frame, targetZoneImgView.frame) {
panGesture.cancelsTouchesInView = true
let buttonSnapX = UIScreen.mainScreen().bounds.width/2.0 - 35.0
let buttonSnapY = UIScreen.mainScreen().bounds.height - 122.0
UIView.animateWithDuration(0.75, delay: 0.0,
usingSpringWithDamping: 0.1,
initialSpringVelocity: 0.0,
options: UIViewAnimationOptions.CurveEaseOut,
animations: {
myButton.frame.origin.x = buttonSnapX
myButton.frame.origin.y = buttonSnapY
}, completion: { (finished: Bool) -> Void in
print("Animation done!")
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let coursesScreen = storyBoard.instantiateViewControllerWithIdentifier("coursesScreen") as! CoursesVC
self.navigationController!.pushViewController(coursesScreen, animated: true)
}
)
Die print("Animation done!")
Aussage auch wie 8-9-mal in Folge ausgelöst, so dass sie wirklich nichts mit der Tatsache zu tun, dass ich eine Viewcontroller bin schieben. Ich nahm den ViewController
Code heraus - und es geschieht immer noch.
Grundsätzlich etwas ich in completion
gelegt wird eine ganze Reihe von Mal in Folge zu schießen.
Was in der Welt ist los?
Ich habe nie persönlich davor gelaufen, aber sehen Sie, ob es aufhört, wenn Sie keine Federanimation verwenden. (Nur ein klassisches 'animateWithDuration: animations: completion:') Wenn das das Problem behebt, dann wette ich, dass Apple in ihren Frühlingsanimationen etwas sehr albernes macht! –