7

При создании файла раскадровки в Xcode вы должны выбрать, подходит ли оно для iPhone или iPad. Это означает, что каждый пользователь должен всегда включать iPhone и iPad в отдельные раскадровки. Это правда?Как сделать универсальную раскадровку в Xcode

Мое приложение имеет несколько раскадровки. В то время как файлы Main.storyboard в значительной степени отличаются между iPhone и iPad, другие раскадровки почти идентичны. Единственное различие может заключаться в том, что вы нажимаете на iPhone против popover на iPad, который можно обрабатывать программно. Кажется ужасно глупым и излишним сделать две раскадровки.

Так что, если сделать один «универсальный» раскадровки, должен ли iPhone или iPad быть выбран в Xcode? Это имеет значение?

+1

Вам нужно отделить раскадровки, однако вы можете очень легко скопировать все свои объекты из одной раскадровки в другую, а затем настроить только небольшие различия. Все ваши магазины и segue останутся там, вам просто нужно будет перетаскивать выходы на занятия, но это быстро. –

ответ

7

Начиная с Xcode 6 мы можем создать единую раскадровку для всех устройств. Для получения дополнительной информации - Documentation

IOS 8 делает дело с размером экрана и ориентацией гораздо более универсальны. Это проще, чем когда-либо, создать единый интерфейс для вашего приложения, которое хорошо работает на iPad и iPhone, при необходимости корректируя изменения ориентации и различные размеры экрана по мере необходимости. Разработать приложения с общим интерфейсом, а затем настроить их для разных классов . Адаптируйте свой пользовательский интерфейс к сильным сторонам каждой формы. Фактор . Вам больше не нужно создавать конкретную раскладку iPad; вместо этого назначьте соответствующие классы размеров и настройте свой интерфейс за лучший опыт.

В iOS 8 есть два типа классов размеров: обычные и компактные.A класс обычного размера обозначает либо большой объем пространства экрана, такой как , как на iPad, или общепринятая парадигма, которая обеспечивает иллюзию большого количества пространства экрана, например прокрутку на iPhone . Каждое устройство определяется классом размера, как вертикально, так и по горизонтали. Классы класса iPad показывают классы собственного размера для iPad . Имея объем доступного пространства для экрана, iPad имеет обычный размерный класс в вертикальном и горизонтальном направлениях как в портретных и ландшафтных ориентациях.

Редактировать: Он поддерживает только iOS 8 (совместимость с обратной совместимостью применяется только для iOS 7) и более поздних версий.

+1

Совместим ли это с iOS7 и iOS6? – AmineG

+0

Я думаю, что поддерживается IOS 7. – arundevma

6

Вам нужно создать отдельные раскадровки для каждого типа устройств. Если вы удалите раскадровку iPad, то ваше приложение будет использовать iPhone. Вы поймете это, когда увидите кнопку 2x в нижней части экрана. Все будет масштабироваться, чтобы соответствовать большему экрану - и графика будет очень плохой.

Единственное подходящее обходное решение - скопировать все содержимое с вашего раскадровки на iPhone в раскадровку iPad. Просто следуйте следующие шаги:

  1. Open iPhone.storyboard,
  2. Нажмите CMD + A, enter image description here
  3. Нажмите CMD + C,
  4. Переключить на IPad .storyboard,
  5. Press CMD + V, enter image description here
  6. Вы увидите, что все экраны, segues, свойства и действия перенесены на ваш новый раскадровки. Все, что вам нужно сделать, это исправить рамки всех ваших элементов, чтобы они соответствовали новым размерам экрана.

И не забывайте, что хорошее приложение для iPad не должно быть таким же, как версия для iPhone. Есть много интересных вещей, которые вы можете сделать с iPad!

+0

Согласен с кнопкой 2x при удалении Main_iPad.storyboard. В моем случае, однако, я все еще использую Main_iPad (и Main_iPhone). Просто в приложении я хочу, чтобы * оба * устройства загружали * такую ​​же раскадровку (используя '[UIStoryboard storyboardWithName: bundle:]'). В этом случае они действительно являются аналогичными вариантами использования. IPad UI более или менее показывает полноэкранный iPhone UI в 320x480pt popover для рассматриваемой функциональности, вроде напоминания Create Event в приложении iPad для iPad. Существуют ли какие-либо проблемы во время выполнения, которые произойдут, если оба устройства загружают одну и ту же раскадровку? – Steveo

+0

Ну, я уверен, что проблем не будет, но я думаю, что кнопка 2x все равно будет существовать. – etolstoy