Неправильно ли использовать viewController.view = newView вместо [viewController.view addSubView: newView]; - PullRequest
1 голос
/ 08 января 2010

Это неправильно использовать

viewController.view = newView;

вместо

[viewController.view addSubView: newView];

Первый удаляет дополнительный уровень viewControllers автоматически созданного представления, и если я создаю newView, как это

UIView * newView = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame]]; или как это UIView * newView = [[UIView alloc] initWithFrame: self.view.frame];

addSubview смещает frame.origin.y на высоту строки состояния.

Кто-нибудь знает причину использования или неиспользования того или иного метода?

1 Ответ

0 голосов
/ 19 июля 2011

Почему вы хотите это сделать? Если вы хотите создать пользовательский интерфейс, вы должны добавить свои подпредставления в метод ViewControllers -viewDidLoad.
Я не рекомендую устанавливать вид ВК вне метода -loadView.

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

Я бы лучше использовал [[UIView alloc] initWithFrame: self.view.frame];
Кроме того, вы должны обязательно применить маску авторазмера (гибкая ширина и высота) в случае изменения границ. Это может произойти, например, при отображении ВК в поповере.

...