Ich versuche einige Animationen innerhalb einer UIView
Unterklasse zu orchestrieren, die eine Änderung der inneren Größe der Ansicht erfordern.Probleme beim Animieren von NSLayoutConstraint beim Ändern der Größe
Im CATransaction
Abschlussblock rufe ich invalidateIntrinsicContentSize()
an, um die Größenänderung widerzuspiegeln, und gleich danach animiere ich meine Einschränkungen.
self.layoutIfNeeded()
UIView.animateWithDuration(2) {
NSLayoutConstraint.deactivateConstraints(oldConstraints)
NSLayoutConstraint.activateConstraints(newConstraints)
self.layoutIfNeeded()
}
Aber eine seltsame Sache passiert, zusammen mit den vorgesehenen Beschränkungen der deactivateConstraints
und activateConstraints
Methoden, sehe ich auch die Größe der Ansicht entlang der gleichen Dauer animiert werden.
Hier ist ein Video von diesem in Aktion.
https://www.youtube.com/watch?v=OgM378Wryd0
Hier ist ein Diagramm des Problems.
Meine Absicht ist es, die Größe der Ansicht sofort zu ändern, und es nicht zusammen mit den Positionsbedingungen zu animieren.
Warum verwenden Sie die animateWithDuration-Methode, wenn Sie nicht animieren möchten? –
Meine Absicht ist es, die Position zu animieren, nicht die Größe. –