Das klang einfach, aber ich konnte es nicht herausfinden.Betten Sie eine UIView-Animation in eine Funktion ein, die nach Abschluss der Animation zurückkehren muss
Kontext: Ein VC teilt einer Ansicht mit, dass sie sich selbst animieren soll, und der VC wartet, bis die Animation abgeschlossen ist.
Ich dachte an so etwas wie dies zu tun:
In Viewcontroller:
loadingView.animate()
In LoadingView (UIView Unterklasse):
animate() -> Bool {
UIView.animate(withDuration: 1.0, animations: {
self.imageViewCenterYConstraint.constant -= 20
self.layoutIfNeeded()
}, completion {
return true // This line obviously doesn't work.
})
}
Ich will nicht den Rest der einschließen Code innerhalb des Abschlussblocks. Der Rest des Codes ist in der VC.
Ich vermute, dass all dies eher mit einem zusätzlichen Abschluss-Handler getan werden sollte, um die Animate Func hinzuzufügen.
PS: Für den Fall, dass Sie eine bessere Lösung/Best Practices kennen, hier ist mehr Kontext: Ich zeige eine Lade-Animation und entfernen Sie es, sobald ich Daten aus dem Netzwerk abgerufen habe. Ich möchte immer auf den Abschluss der Animation warten, bevor sie entfernt wird, selbst wenn die Netzwerkdaten bereits heruntergeladen wurden. Ich möchte die Animation nicht um die Hälfte stoppen.
Ein zusätzlicher Abschluss Block oder ein Delegierter ist ein Weg zu gehen. – Losiowaty