Ich stehe vor einem Problem. Ich arbeite an einer App und verwende storyboard
mit Autolayout aktiviert. Jetzt auf einer meiner UIViewControllers
habe ich eine UIView
(sagen wir A) platziert. Jetzt hat A mehrere Unteransichten ( UIViews
, um genau zu sein). Ich habe die Einschränkung " Horizontally and Vertically centered
" für A angewendet. Die Unteransichten in A haben keine Einschränkungen für sie.
Jetzt in meinem Code habe ich eine Methode, um die Subviews zu animieren, die in A sind. Innerhalb dieser Methode rufe ich die UIView's
-Animationsmethode ...
und animiere eines der Teilansichten innerhalb der Ansicht A. Nun besteht das Problem, dass diese Rahmenänderungen nicht bestehen bleiben. Wenn ich einen View-Controller auf dem aktuellen View-Controller modale und ihn dann verwerfe, werden die Frames aller Subviews innerhalb von A zurückgesetzt.
Ich habe danach gesucht und herausgefunden, dass das Problem wegen Autolayout auftritt. Ich habe es deaktiviert und dann erneut versucht und alles hat gut funktioniert.
Aber was ist die Problemumgehung mit Autolayout aktiviert ...?
Vermisse ich etwas ...?
Das Interessante ist, dass viele Posts auf StackOverflow dies vorgeschlagen haben
sollten wir die Beschränkungen und NICHT die Rahmen bei der Verwendung von automatischem Layout animieren.
ABER ich habe keine Einschränkungen für die Teilansichten angewendet, die sich in Ansicht A befinden. Einschränkungen werden nur für Ansicht A angewendet.
Danke.
Schreiben Sie für alle Ansichten, die Sie animieren, den folgenden Code in viewDidLoad
%Vor%Hoffe das hilft
Fügen Sie Folgendes hinzu:
%Vor% Durch das Einfügen in viewDidLayoutSubviews
anstelle von viewDidLoad
wurden die Layout-Constraint-Fehler für mich beseitigt.
Tags und Links iphone ios animation uiview autolayout