2016-09-25 6 views
8

Wie mache ich einen einfachen Abschlussblock in Swift 3?UIView.animate - Swift 3 - Fertigstellung

möchte ich self.isOpen = true bei der Fertigstellung der Animation setzen:

  UIView.animate(withDuration: 0.25, delay: 0.0, options: [], animations: { 
       self.isOpen = true 
       self.drawerView?.frame = CGRect(x: 0, y: 0, width: (self.drawerView?.frame.size.width)!, height: (self.drawerView?.frame.size.height)!) 
       self.contentView?.frame = CGRect(x: 200, y: 0, width: (self.contentView?.frame.size.width)!, height: (self.contentView?.frame.size.height)!) 
      }, completion: nil) 

Nebenbei:

Es ist ziemlich unmöglich Swift 3 atm zu lernen, wegen nichts auf dem Internet-Arbeits :(


Ich habe auch dieses gesamte Dokument für sogar eine Erwähnung von gesucht das Wort "animieren" und alles, was nicht finden konnte:

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/index.html#//apple_ref/doc/uid/TP40014097-CH3-ID0

+1

Für die Zukunft: Nach automatische Erzeugung der .animate (...) Funktion, Doppelklick auf den blau hervorgehobenen ((Bool) -> Void)? Editor Platzhalter und die Struktur des anonymen Blocks wird vorbereiten :) – Muli

Antwort

49

Sie es wie folgt hinzu:

UIView.animate(withDuration: 0.25, delay: 0.0, options: [], animations: { 
    self.drawerView?.frame = CGRect(x: 0, y: 0, width: (self.drawerView?.frame.size.width)!, height: (self.drawerView?.frame.size.height)!) 
    self.contentView?.frame = CGRect(x: 200, y: 0, width: (self.contentView?.frame.size.width)!, height: (self.contentView?.frame.size.height)!) 
}, completion: { (finished: Bool) in 
    self.isOpen = true 
}) 
+0

Danke ein Haufen !!! Ihr "Vorschlag" war zu kryptisch, um zu verstehen, was eigentlich zu schreiben ist ... und der Mangel an Dokumentation und überwältigende Menge an nicht funktionierenden swift2.2-Code ist ziemlich frustrierend :( –

+0

die Animation ist großartig, aber wie könnte ich das gleiche layout push down in button click? – pmb

-2

schreiben es wie unten Code:

UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: { 

// code 

}) 
+0

Diese Antwort enthält keinen Abschlussblock, was die Frage erfordert. – frakman1