viewDidLayoutSubviews Endlosschleife mit iOS 8

8

Ich habe ein universelles iOS-Projekt, das perfekt mit Xcode 5 (iOS 6 und iOS 7) läuft. Ich verwende ein anderes Storyboard für iPad & amp; iPhone.

Wenn ich es mit Xcode 6 GM starte, funktioniert es perfekt mit dem iPhone, funktioniert aber nicht mit dem iPad. Ich debuggte ich fand, dass es ein Problem mit viewDidLayoutSubviews in UISplitViewController gibt. Zum Beispiel:

- (void)viewDidLayoutSubviews { [super viewDidLayoutSubviews]; NSLog(@"run"); // some config with frame of child controllers }

Es läuft kontinuierlich und hat nicht aufgehört.

Hat jemand das gleiche Problem? Bitte helfen Sie: (

Danke!

    
Nguyễn Lương Bằng 17.09.2014, 03:17
quelle

3 Antworten

3

Was ich gesehen habe ist, dass jedes Mal, wenn Sie das Layout Ihrer Elemente in Ihrer Ansicht ändern, die folgenden Methoden aufgerufen werden:

%Vor%

Wenn Sie etwas in das letzte ändern, wird es es erneut aufrufen;

    
orafaelreis 04.12.2014 19:33
quelle
2

Ich hatte das gleiche Problem - benutzte es um die Größe des Masters / Details in UISplitViewCtrl zu ändern.

Um die Größe Master / Detail zu ändern, versuchen Sie diese neuen Parameter in ios8, zum Beispiel viewDidLoad:

%Vor%     
developer9911 23.09.2014 13:25
quelle
2

Der Code, den Sie in der ViewDidLayoutSubviews-Überschreibung für die untergeordneten Controller haben, verändert selbst die Unteransichten der Ansicht und löst so aus, dass viewDidLayoutSubviews erneut aufgerufen wird und wieder und wieder.

Um dies zu verhindern, versuchen Sie, Ihrem UISplitViewController eine BOOL-Eigenschaft hinzuzufügen, um die Ausführung des Layout-Codes für untergeordnete Controller zu steuern.

%Vor%

Dann in Ihrer SichtDidLayoutSubviews ...

%Vor%

Es ist einen Versuch wert.

Ich hatte in letzter Zeit das gleiche Problem.

    
Chris Butcher 09.12.2015 17:29
quelle

Tags und Links