Коротко и ясно о разработке на Objective-C, JavaScript, C#, Java, Swift. Под Android, iOS, WinForms и Unity

7 заметок с тегом

iOS development

Позднее Ctrl + ↑

Динамическое изменение лэйаута для прортретной и ландшафтной ориентации на iPad

Хороший интерфейс пользователя должен быть адаптивным и изменяться в зависимости от размера и соотношения сторон экрана. Всем известно, что компания Apple обладает своим собственным подходом к построению интерфейса. В отличии от Android, для того чтобы нарисовать интерфейс для iOS не достаточно описать его с помощью декларативного языка. На iOS придется работать в Interface Builder, рисовать контролы ручками и описывать их взаимоотношения при помощи “ограничений” (Auto Layout Constraints).

Преобразование файла интерфейса Storyboard из формата экрана iPhone в iPad

Рано или поздно при разработке приложения под iPhone возникает необходимость адаптировать интерфейс приложения под iPad. Если приложение большое создавать интерфейс под планшет с нуля может оказаться весьма накладным по времени и ресурсам делом.


Чтобы облегчить себе труд можно создать файл с интерфейсом для iPad из файла интерфейса iPhone. Для этого необходимо выполнить следующие шаги:


  1. Дублируем файл MainStoryboard_iPhone.storyboard и переименовываем дубль в MainStoryboard_iPad.storyboard
  2. Открываем наш файл обычным текстовым редактором (рекомендую для этого использовать SublimeText2) и ищем следующий атрибут: targetRuntime=“iOS.CocoaTouch”, дописываем в конце значения этого атрибута “.iPad”, должно получиться вот так: targetRuntime=“iOS.CocoaTouch.iPad”
  3. Далее если присутствует тег “simulatedScreenMetrics” удаляем в нем атрибут “type” со значением “retina4”
  4. Далее пробегаемся автозаменой по файлу и заменяем значения ширин и высот экрана iPhone на значения экрана iPad (например width=“320” => width=“768”, height=“568” => height=“1024”)
  5. Сохраняем Storyboard, открываем ее в Interface Builder, корректируем положения экранов и лэйауты элементов

Таким не хитрым образом мы быстро получили вариант интерфейса для iPad из интерфейса iPhone.