Добавление представления контроллера представления как подпредставления изменяет его структуру? - PullRequest
0 голосов
/ 08 февраля 2011
    SomeViewController *someVC = [[SomeViewController alloc] initWithNibName:@"SomeViewController" bundle:nil];
    self.someViewController = someVC;
    [someVC release];


    NSLog(@"height before added as subview: %f", self.someViewController.view.frame.size.height);
    [self.containerView addSubview:self.someViewController.view];
    NSLog(@"height AFTER added as subview: %f", self.someViewController.view.frame.size.height);

    // height before added as subview: 480.000000
    // height AFTER added as subview: 540.000000

Какое возможное объяснение этому есть?Представление someViewController не имеет установленных свойств автоматического изменения размера, а containerView не выполняет автоматического изменения размера своих подпредставлений.Что может привести к изменению фрейма, просто добавив его в качестве подпредставления?

Еще одна загадка в этом состоит в том, что это происходит только тогда, когда высота представления someViewController> = 480.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2011

Какой вид контроллера SomeViewController?Я думаю, что единственное, что может случиться, это то, что SomeViewController может содержать некоторый дополнительный контент, такой как верхняя строка UINavigationController, и это иногда автоматически увеличивает размер.Но то, что вы делаете, нарушает HIG, добавляя представление одного контроллера представления к другому контроллеру представления.UIViewController предназначен для полного обзора экрана или относится к специализированному контроллеру вида, например UITabBarController, UINavigationController или UISplitViewController.В результате someViewController не будет работать должным образом и не будет принимать вызовы, такие как viewDidLoad.Поэтому, если вы уверены, что свойства авторазмера не заданы, я могу порекомендовать использовать UIView вместо UIViewController.

0 голосов
/ 08 февраля 2011

Это может быть вызвано autoresizingMask вида, его цель - настроить размер в соответствии с изменениями в его суперпредставлении.

...