Я много лет работал над приложениями для iOS, прежде чем наступила более длительная пауза. В своем новом проекте я решил попробовать новые функции Interface Builder и Storyboards (Swift 3, Xcode 8.2.1). Итак, у меня есть работающее приложение с точно определенными ограничениями для всех поддерживаемых устройств, в соответствии с парадигмой «обычная» и «компактная» ширина/высота. Все, казалось, работало, и мне понравился подход.
Я заканчивал первые представления (и их контроллеры) для симулятора iPad, прежде чем решил запустить приложение также на симуляторе iPhone, чтобы проверить макет. Получается, что все работает как положено, но для ОДНОГО просмотра.
Это представление имеет следующее поведение:
- Если на холсте раскадровки (и даже в редакторе помощи, который, кстати, для меня выглядит так же) я выбрал «просмотреть как iPad 9,7» и запустил симулятор iPad (с тем же размером экрана), макет работает так и должно быть.
- Если на холсте раскадровки я выбрал «просмотреть как iPhone 5» и запустил симулятор iPhone 5, макет работает так, как должен.
- Однако, если я выберу «просмотреть как iPhone 5» и запущу приложение на симуляторе iPad ИЛИ любой другой ложной комбинации, произойдет следующее:
Как только представление появляется (настраиваемый переход или нажатие по умолчанию. Все представления находятся внутри контроллера навигации), оно показывает содержимое, уменьшенное / увеличенное до размера размера предварительного просмотра, который я выбрал в раскадровке. Затем он анимируется (масштабируется от верхнего левого угла), чтобы заполнить экран. Например: если я выберу «просмотреть как iPhone 5» и запущу на iPad, вид появится в левом верхнем углу симулятора iPad размером с iPhone 5. Затем он масштабируется, чтобы заполнить экран с точным макетом. Я хочу.
Следует добавить, что внутри этого одного представления макет для всех устройств выглядит одинаково, просто уменьшено/увеличено. Так что на самом деле все сводится к неправильному размеру представления.
Это все происходит ТОЛЬКО с одним из моих представлений, которые я все спроектировал и выложил (ограничения) одинаково. Это происходит КАЖДЫЙ РАЗ, и на симуляторе, и на реальных устройствах.
Я пробовал различные предложения из Интернета на прошлой неделе, и мне не удалось найти ни одной темы (на Stack Overflow), которая могла бы мне помочь.
Я потерялся. Я рад любым предложениям!
Спасибо.