2017-12-16 4 views
-3

Ich lerne über Core-Animation. Aber ich sehe ein Wort, das in der Erklärung animierbar ist. Bitte erkläre. https://developer.apple.com/documentation/quartzcore/calayer/1410773-contentsKann jemand erklären, was in contents-Eigenschaft in CALayer animierbar ist? Wie ist es animierbar?

+0

Es ist nicht etwas * in * diese Eigenschaft, die animierbar ist. Die Eigenschaft selbst ** ist ** animierbar. – Losiowaty

+0

"Die Eigenschaft selbst ist animierbar" können Sie sagen, was Sie damit meinen? –

Antwort

1

Für CALayer Eigenschaften, bedeutet dies einfach, dass those "animatable" properties über Core Animation (z.B. CABasicAnimation) animiert werden. Zum Beispiel, geht dies die backgroundColor Eigenschaft (die animierbaren ist) ein CALayer von was auch immer es war zu .red über einen Zeitraum von 2 Sekunden:

let animation = CABasicAnimation(keyPath: "backgroundColor") 
animation.toValue = UIColor.red.cgColor 
animation.duration = 2 
view.layer.add(animation, forKey: nil) 

die Core Animation Programming Guide für weitere Informationen.


Ich weiß, Sie fragte nach CALayer, aber Sie würden auch „animierbaren“ in Bezug auf UIView Eigenschaften sehen. In diesem Zusammenhang bedeutet dies, dass diese mit UIViewPropertyAnimator oder den älteren, blockbasierten Animationsmethoden wie animate(withDuration:animations:) animiert werden können.

Wo es möglich ist, ist es im Allgemeinen bevorzugt, UIView Eigenschaften zu animieren, anstatt CALayer Eigenschaften, weil diese UIView Animationstechniken bieten eine schöne, blockbasierte Stellungen und sind in der Regel direkt auf dem entsprechen, was wir in UIKit an einem Tag-zu verwenden Tagesbasis. Aber wenn benötigt/gewünscht, können Sie sicherlich in CALayer Core Animation tauchen, wie oben gezeigt.

+0

Danke Mann. Ich habe jetzt die ganze Sache. –

+0

@Mobile_Developer - Cool. Wenn ich Ihre Frage beantwortet habe, möchten Sie sie vielleicht schließen, indem Sie meine Antwort akzeptieren, indem Sie auf das Häkchen daneben klicken. Siehe [Was soll ich tun, wenn jemand meine Frage beantwortet?] (Https://stackoverflow.com/help/someone-answers) – Rob

+0

Ich würde es schließen. Aber im Moment habe ich nicht genug Ruf, um es zu schließen. –

Verwandte Themen