iOS: Ermittelt, wenn alle Kinder layoutSubviews aufgerufen haben

8

Es wird angezeigt, dass viewDidLayoutSubviews sofort aufgerufen wird, nachdem layoutSubviews in einer Ansicht aufgerufen wurde, bevor layoutSubviews für die Teilansichten dieser Ansicht aufgerufen wird. Gibt es eine Möglichkeit zu wissen, wann layoutSubviews in einer Ansicht aufgerufen wurde und alle untergeordneten Elemente, die ebenfalls ihre Layouts benötigen, aktualisiert wurden?

    
Thayne 24.12.2013, 19:10
quelle

2 Antworten

1

Sie sollten nicht wissen müssen, ob die Unteransichten einer Unteransicht ihr Layout aktualisiert haben: Das klingt nach zu enger Kopplung. Außerdem kann jede Unteransicht die Anordnung ihrer jeweiligen Untersichten unterschiedlich handhaben und muss (möglicherweise) nicht layoutSubviews für ihre Untersichten aufrufen. Sie sollten immer nur Ihre direkten Untersichten kennen. Sie sollten sie mehr oder weniger als Black Boxes behandeln und es ist mir egal, ob sie eigene Subviews haben oder nicht.

    
Johannes Fahrenkrug 24.12.2013, 19:20
quelle
0

Wie @Johannes Fahrenkrug gesagt hat, sollten Sie sie als "Black Boxes" behandeln. Aber nach meinem Verständnis ist es, weil der Kakao es einfach nicht versprechen kann.

Wenn Sie wirklich benachrichtigt werden müssen, wenn alle Subviews den Layout-Job erledigt haben, kann hier ein Hardcore-Beispiel Ihr Problem lösen. Ich verspreche auch nicht, dass es in jeder Situation funktionieren würde.

%Vor%     
Mr. Sun Lin 13.08.2014 14:35
quelle