Я создал простое приложение iOS, которое создает UIViewController с представлением в нем. Вот приложение делегат:UIWindow создание NSAutoresizingMaskLayoutConstraints вместо NSLayoutConstraint
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] init];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
Вот код в UIViewController:
- (void)viewDidLoad {
[super viewDidLoad];
self.view.translatesAutoresizingMaskIntoConstraints = NO;
}
- (void)viewDidAppear:(BOOL)animated {
NSLog(@"breakpoint here");
}
я поставил точку останова на «точку останова здесь» линии. Побежал приложение и напечатал это после того, как он пошел в отладчике:
(lldb) po [[UIWindow keyWindow] _autolayoutTrace]
$0 = 0x0a056d30
*<UIWindow:0x8078de0>
| *<UIView:0xa053fe0>
А вот горизонтальные ограничения на этой UIView:
(lldb) po [0xa053fe0 constraintsAffectingLayoutForAxis:0]
$1 = 0x0a05ba60 <__NSArrayM 0xa05ba60>(
<NSLayoutConstraint:0xa059560 H:|-(0)-[UIView:0xa053fe0](LTR) (Names: '|':UIWindow:0x8078de0)>,
<NSLayoutConstraint:0xa0595e0 UIView:0xa053fe0.right == UIWindow:0x8078de0.right>,
<NSAutoresizingMaskLayoutConstraint:0x8571520 h=--- v=--- H:[UIWindow:0x8078de0(768)]>
)
Так вот простой вопрос, поэтому я лучше понимаю. Если предполагается, что автоматическое отключение должно быть новым, а не авторезистированием масок, почему UIWindow заставляет NSAutoresizingMaskLayoutConstraint? Есть ли другой инициализатор, который я должен использовать, чтобы заставить UIWindow использовать регулярные ограничения? Возможно, виноват initWithFrame в моем UIWindow?
Спасибо!
Вы используете раскадровки или код, чтобы сделать интерфейс? – JoePasq
все в коде – Larry