Я нахожусь в процессе разработки универсального приложения для iOS.
Я хочу, чтобы все мои представления автоматически меняли размеры в зависимости от размера экрана, я имею в виду, что я не хочу жестко кодировать любые CGRect
размеры или использовать Interface Builder;Я использую конкретный пример приложения, но я был бы очень признателен за ответ, который можно использовать во многих похожих сценариях.
Это очень простое приложение, но я надеюсь, что ответ может показать мне, как это сделать длявсе мои взгляды, чтобы они могли адаптироваться к любому размеру.
Для этого конкретного приложения я создаю что-то, что будет выглядеть так:
Этоособенно хитрый пример, поскольку MKMapView нужно инициализировать с помощью фрейма, но я надеюсь, что вы мне поможете.
Первая проблема, с которой я столкнулся, заключалась в том, что в моем методе loadView:
MKMapView *mapView=[[MKMapView alloc ] initWithFrame:CGRectZero];
mapView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
self.view=mapView;
Маска авторазмера не работает, если контроллер представления не управляется UINavigationController
;Я не знаю, почему.
Следующая проблема возникает, когда я хочу добавить свой UIToolbar внизу экрана.
Чтобы получить это, я делаю следующее:
UIToolbar *toolBar=[[UIToolbar alloc] initWithFrame:CGRectMake(0, 420, 320, 40)];
toolBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[self.view addSubview:toolBar];
Это прекрасно работает с iPhone, но не с iPad (ширина панели инструментов отрегулирована, но в нижней части экрана нет логера), поскольку размер жестко задан.
Извините за публикацию такого длинного вопроса, но я думаю, что ответы могут быть отличным ресурсом для меня и других разработчиков, нуждающихся в этом.
Скажите, пожалуйста, если мне не ясно.