2016-11-08 8 views
0

Ich habe UIView mit NavigationController auf die Ansicht eines ViewControllers gesetzt.Xcode 8 Storyboard-Rahmengrößen Ausgabe

Und legen Sie die neuen UIView Constraints als Top Space zu TopLayoutGuide: 0, Leading Space Superview: 0 Trailing Raum Superview: 0 und Bottom Space zu Bottom LayoutGuide: 0.

Als Ergebnis in IB scheint die neue UIView in Ordnung, ich meine, es ist oben ist nur unter der Navigationsleiste und füllen Sie den Rest.

Aber, in Objective-C, ich die NSLog für self.view.frame.size und die neue UIView's frame.size ausgeben. Ich erwartete, dass die Höhe der neuen UIView kleiner als die Höhe von self.view war. Das neue UIView-Top befindet sich direkt unter der Navigationsleiste, während der gesamte Bereich von self.view abgedeckt ist.

Aber das Ergebnis war die gleiche Höhe für beide. Dies führt dazu, dass der Inhalt der neuen UIView falsch platziert wird.

Haben Sie eine gute Lösung?

Vielen Dank.

+1

10 Wo drucken Sie sie? – Tj3n

+2

Die Größe der Frames ist nicht korrekt, bis 'viewDidLayoutSubviews' aufgerufen wird. Dies ist der Punkt, an dem alle Ihre Constraints aufgelöst wurden. – norders

+0

Vielen Dank für einen guten Vorschlag. Ich werde versuchen, den Code neu zu schreiben. –

Antwort

0

Das Schreiben von Codes in viewDidLauoutSubviews löste das Problem.