2016-09-25 24 views
8

Jak zrobić prosty blok ukończenia w Swift 3?UIView.animate - Swift 3 - zakończenie

Chcę ustawić self.isOpen = true w zakończeniu animacji:

  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) 

Na marginesie:

Jest to całkiem niemożliwe, aby dowiedzieć się Swift 3 ATM powodu nic w pracy internet :(


Przeszukałem również cały ten dokument, nawet jeśli chodzi o wzmiankę o Słowo "ożywić" i nie mógł znaleźć niczego:

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

+1

na przyszłość: Po auto-generowanie funkcji .animate (...), dwukrotne kliknięcie na podświetlonym niebiesko ((Bool) -> Void)? redaktor zastępczy i struktura anonimowego bloku przygotuje :) – Muli

Odpowiedz

49

dodaniu go tak:

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

Dzięki za wiązkę !!! Ich "sugestia" była zbyt tajemnicza, aby zrozumieć Właściwie to, co napisać ... i brak dokumentacji oraz przytłaczająca ilość niedziałającego kodu swift2.2- jest dość frustrująca :( –

+0

animacja jest świetna, ale jak mogłem to samo układ wciskamy w przycisk klikamy? – pmb

-2

napisać go jak poniżej kodu:

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

// code 

}) 
+0

Ta odpowiedź nie zawiera bloku zakończenia, do którego jest to pytanie. – frakman1