Swift-UIView animateWithDuration Abschluss Schließung sofort aufgerufen

Erwarte ich die Fertigstellung der Schließung auf diese UIView animation aufgerufen werden nach der angegebenen Dauer, aber es scheint zu brennen sofort...

 UIView.animateWithDuration(
        Double(0.2),
        animations: {
            self.frame = CGRectMake(0, -self.bounds.height, self.bounds.width, self.bounds.height)
        },
        completion: { finished in
            if(finished) {
                self.removeFromSuperview()
            }
        }
    )

Hat sonst noch jemand erlebt? Ich habe gelesen, dass andere hatten mehr Erfolg durch die Mitte, anstatt den Rahmen zu bewegen, aber ich hatte die gleichen Probleme mit dieser Methode zu.

  • Wo sehen Sie diesen code ausführen?
  • Stellen Sie sicher, dass der Rahmen tatsächlich ändert, weil completion-block wird sofort aufgerufen, wenn es keine animation.
  • In einem benutzerdefinierten UIView Klasse. Ich animiere den Blick in Ort, um zu beginnen mit in init(), dann der obige code wird aufgerufen, wenn ein Tippen an beliebiger Stelle. Der Rahmen ist definitiv zu verändern...
  • Nur hinzuzufügen, dass das gleiche tritt auch mit verschiedenen Animationen. z.B. Wechsel von der alpha-in der Ansicht.
InformationsquelleAutor David Wadge | 2014-09-02
Schreibe einen Kommentar