2016-11-08 7 views
0

Я поместил UIView в вид ViewController с помощью NavigationController.Xcode 8 Размер рамы для раскадровки

И установите новые ограничения UIView как верхнее пространство в TopLayoutGuide: 0, Ведущее пространство для просмотра: 0 Пространство для просмотра: 0 и нижнее пространство до нижнего макета.

В результате, в IB новый UIView кажется прекрасным, я имею в виду, что он находится прямо под навигационной панелью и заполняет остальные.

Но в Objective-C я выводил NSLog для self.view.frame.size и новый frame.size для UIView. Я ожидал, что высота нового UIView была меньше высоты self.view. Поскольку новый верх UIView находится только под панелью навигации, а во всей области покрытия self.view.

Но результат был такой же высоты для обоих из них. И это делает содержимое нового UIView неуместным.

У вас есть хорошее решение?

спасибо.

+1

Где вы их печатаете? – Tj3n

+2

Размеры фреймов будут неправильными до тех пор, пока не будет вызвано 'viewDidLayoutSubviews', которое является точкой, в которой все ваши ограничения были разрешены. – norders

+0

Благодарим вас за хорошее предложение. Я попытаюсь переписать код. –

ответ

0

Написание кодов на viewDidLauoutSubviews решила проблему.