Ich habe eine benutzerdefinierte "Kartenansicht", die über eine entsprechende XIB verfügt, die die Unteransichten ausbildet. Ich verwende Beschränkungen, um die Unteransichten zu gestalten.CGAffineTransform bewirkt, dass sich Teilansichten abrupt bewegen
Ich füge die Kartenansicht einer anderen Ansicht hinzu und versuche dann, sie mit zu animieren.
Wenn ich die Animation triggere, verschieben sich die Teilansichten der Kartenansicht plötzlich abhängig vom rotationAngle. In der Zwischenzeit funktioniert der Rest der Animation wie erwartet; Es dreht sich in dem von mir angegebenen Winkel.
Meine Fragen sind: Warum ändern die Unteransichten die Position, wenn die Transformation beginnt und wie verhindere ich das?
Hier ist ein Beispiel für den Code, den ich verwende. view.layoutIfNeeded()
und scheinen keinen Unterschied zu machen, FYI.
let rotation = arc4random_uniform(20)
let destinationCenterY = self.frame.height + view.frame.height
let destinationCenterX = arc4random_uniform(UInt32(self.frame.width))
let startTransform = CGAffineTransform(rotationAngle: CGFloat(rotation))
UIView.animate(withDuration: 0.4, animations: {
view.transform = startTransform
view.center.y = destinationCenterY
view.center.x = CGFloat(destinationCenterX)
view.layoutIfNeeded()
view.autoresizesSubviews = true
}, completion: { (complete) in
view.removeFromSuperview()
view.transform = endTransform
})
Ich habe auch ein seltsames Problem mit Subviews Ändern der Größe, wenn CGAffineTransform scale
verwendet. Jede Hilfe würde sehr geschätzt werden.
EDIT: Hinzufügen von Bildern von was passiert. Vor Animation sind Ansichten richtig ausgerichtet: Nach Animation beginnt, die Subviews nach rechts bewegen:
Ich versuchte dies und es hatte keine Wirkung. Ich habe die ursprüngliche Frage mit einigen Screenshots aktualisiert – OffensivelyBad