2016-05-13 1 views
0

Я следую за этот учебник: http://matthewmorey.com/creating-uiviews-programmatically-with-auto-layout/Понимание создания UIView программно с помощью руководства по ограничениям?

В нем (я думаю), он создает маленькую красную подвид и добавляет ограничения на красный подвид.

Но разве вам не нужно добавлять ограничения к самому представлению (зеленая часть)?

Допустим, вы хотели, чтобы зеленый вид всегда был полноэкранным, как показано на рисунке в его учебнике. Как бы Вы это сделали?

+1

Зеленый вид всегда будет отображаться в полноэкранном режиме, поскольку он перешел к self.view.self.view имеет рамку по умолчанию, чтобы охватить весь вид –

ответ

0

Зеленый фон автоматически заполнит MDMView, независимо от его рамки.

Эта линия (уже в учебнике) устанавливает MDMView быть view из MDMViewController:

self.view = [[MDMView alloc] init]; 

И window.rootViewController автоматически заполняет окно с его точки зрения:

MDMViewController *rootViewController = [[MDMViewController alloc] init]; 
self.window.rootViewController = rootViewController; 

Таким образом, нет , вам больше нечего делать в коде, чтобы получить зеленый цвет, чтобы заполнить экран.

Вы должны, однако, добавить свойство Retina 4 LaunchImage в Images.xcassets. Он должен быть 640 x 1136. Это служит для указания того, что приложение должно поддерживать 4-дюймовые и более крупные экраны. Без этого актива вы получите черные полосы сверху и снизу на больших экранах.

0

Что он говорит это

UIView *contentView = [[UIView alloc] init]; 
contentView.backgroundColor = [UIColor greenColor]; 
self.view = contentView; 

Это означает, что зеленый вид является основным видом. Вам не нужно устанавливать ограничения для основного вида. Он всегда будет полноэкранным.

Смежные вопросы