2013-04-24 6 views
1

У меня есть контроллер вида, он создает другой контроль над представлением и добавляет результирующий вид к его подзону. Но проблема в том, что представление создается с помощью frame (0, 0, 0, 0).Загрузка представления из NIB возвращает нулевое представление кадра - что делать?

Если я установил фрейм вручную, это нормально, но я не хочу устанавливать кадр вручную, я хочу авторезистировать. Вот код:

GridViewController *gridVC = [[GridViewController alloc] initWithNibName:@"GridView" bundle:nil]; 
[self addChildViewController:gridVC]; 
[self.view addSubview:gridVC.view]; 

self.view имеет нормальный кадр, и имеет gridVc.view (0,0,0,0) кадра;

В xib У меня есть несколько просмотров, просмотр подключен правильно, владелец файла настроен правильно, и все выглядит хорошо.

ответ

1

Когда вы выполняете сдерживание контроллера контроллера, как это (кстати, я надеюсь, что у вас также есть ваш звонок didMoveToParentViewController), я всегда устанавливаю frame, например.

gridVC.view.frame = self.view.bounds; 

Правда, я часто добавляя мой взгляд ребенка в контейнер, который не занимает весь экран, так что это очень важно в этой ситуации, но, тем не менее, я не знаю, почему вы спрятать, чтобы просто установить frame.

Как только вы это сделаете, если вы правильно настроите маски автозапуска, все будет автоматически изменяться по мере необходимости.

FYI, Apple устанавливает frame, когда они также добавляют вид ребенка в их примерный код (см. Listing 14-1).

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

+1

Я отлично справляюсь с настройкой рамок, я использовал этот подход, но установил рамки для всех для каждой позиции, и каждое вращение наполнило меня быстро, поэтому я решил пойти с авторезистированием маршрута. – Dvole

+0

@Dvole - Определенно. После того, как вы настроили все маски автозапуска, вам нужно только установить этот «фрейм», и все остальное позаботится о вас. , – Rob

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