Первый UIView не автоматически подгоняется под iPhone 5 или iPad

У меня есть простое приложение с несколькими UIViews. Недавно я начал работу над созданием универсального приложения, из которого можно было бы автоматически изменять размер и поворачивать изображения, работающие с iPhone 5 и iPad.

В моем самом первом просмотре вид выглядит как стандартный 3,5-дюймовый дисплей с белой полосой под ним на iPhone 5 (и рядом с ним на iPad). К нижней части вида также прикреплена панель инструментов, и она появляется в том месте, где он был бы на 3,5-дюймовом дисплее. Странно то, что когда я перехожу к другому представлению, а затем возвращаюсь к корневому представлению, представление имеет правильный размер.

Я проверил свой автоматический размер для представления - все внешние и внутренние якоря активированы. Мой режим просмотра установлен на «масштабировать по размеру», и по сравнению с другими представлениями настройки такие же. И странно то, что он появляется сразу после второго отображения представления.

Есть предположения?


person Chet at C2IT    schedule 23.05.2013    source источник
comment
Идут странные дела... Приложение ДЕЙСТВИТЕЛЬНО автоматически изменяет размер на симуляторе iPad / iOS6.1. НЕ выполняет автоматическое изменение размера на симуляторе iPhone 5 / iOS6.1. НЕ автоматически изменяет размер на симуляторе iPad / iOS5.1.   -  person Chet at C2IT    schedule 23.05.2013
comment
Я думаю, что вся система автоматического изменения размера на основе ограничений была введена в iOS 6, поэтому не так уж странно, что она не работает в iOS 5.   -  person Caleb    schedule 23.05.2013
comment
Я понимаю это, но чего я не понял, так это того, почему IPHONE 5 / iOS6 НЕ будет изменять размер, а IPAD / iOS6 БУДЕТ... Я не думаю, что получал стабильные результаты, так что это могло быть просто любое устройство.   -  person Chet at C2IT    schedule 23.05.2013


Ответы (1)


Я нашел свою проблему. Это было в методе didFinishLaunchingWithOptions приложения.

Я изменился:

 UIView *rootView = self.rootViewController.view;
 CGRect rootViewFrame = rootView.frame;
 rootViewFrame.origin.y +=[UIApplication sharedApplication].statusBarFrame.size.height;

to

 UIView *rootView = self.rootViewController.view;
 CGRect rootViewFrame = [[UIScreen mainScreen] applicationFrame];

Приложение получало жестко запрограммированный размер представления из XIB при первой загрузке представления; теперь я просто помещаю его в рамки приложения.

person Chet at C2IT    schedule 23.05.2013