2016-07-21 24 views
2

Ich habe eine UIView, in der ich einen Film anzeigen, wenn ein bestimmtes Kapitel es erfordert. Diese Ansicht wird über Einschränkungen in Main.storyboard angepasst, um sie an das iPhone anzupassen. Alles funktioniert gut auf dem iPad. Es funktioniert auch gut auf dem iPhone, es sei denn, die App wird neu geladen, wenn ein Film mit Kapitel zuletzt aktiv war, was bedeutet, dass ein Film beim Laden zuerst geladen wird. In diesem Szenario wird der Film in die iPad-Abmessungen statt in die kleineren iPhone-Spezifikationen geladen.Timing von Constraints Anwendung

Es scheint, dass die Beschränkungen für die Ansicht des Films nicht rechtzeitig behoben werden. Das Problem konzentriert sich auf eine Abfrage der Grenzen der Ansicht. Wenn ich eine Verzögerung vor der Verwendung der Grenzen einfüge, verschwindet das Problem. In der Tat, eine Verzögerung von 0,0 Sekunden macht den Job!

Einen Kludon zu verwenden, der auf einer Verzögerung beruht, scheint ziemlich funky zu mir. Ich kann auch den Anruf, der die Grenzen verwendet, an viewDidLoad verschieben, um das Problem zu lösen, aber dann sehe ich einige zugrunde liegende "Müll" beim Neuladen der App, das Startbild scheinbar nicht in Kraft. Irgendwelche Vorschläge?

+1

Es klingt, als würden Sie 'Grenzen 'verwenden, bevor Ihre Ansichten angezeigt wurden. Ohne Ihren Code wirklich zu sehen, würde ich vorschlagen, Ihren beschriebenen Code innerhalb von 'viewDidLayoutSubViews' auszuführen. – ZGski

+0

Danke! Ich hatte nie die Möglichkeit, dies zu benutzen, es scheint, dass es hier gebraucht wird. – bpedit

+0

Ich werde es eine Antwort machen, damit diese Frage offiziell gelöst werden kann. – ZGski

Antwort

1

Es klingt wie Sie bounds verwenden, bevor Ihre Ansichten liegen. Ohne Ihren Code wirklich zu sehen, würde ich vorschlagen, Ihren beschriebenen Code innerhalb von viewDidLayoutSubViews() auszuführen.