Как заставить приложение iOS выглядеть одинаково в iPhone 5, iPhone 6 и iPhone 6+
Я создаю приложение для iPhone, используя Swift, XCode 7.3.1 в книжной ориентации. Мы предоставили визуальные дисплеи (от нашего дизайнера) для экранов, которые должны быть в нашем приложении. Как разработчики, мы должны точно сопоставить элементы экрана приложения с предоставляемыми визуальными дисплеями. Мы использовали Auto-Layout, но соответствие для различных элементов на экране не является точным. например. У нас проблемы с изменением размера шрифта в соответствии с моделью iPhone и т. Д.
Поэтому в настоящее время у нас есть оператор switch, в котором мы проверяем deviceModel и увеличиваем размер элементов на фиксированный процент для iPhone 6+ и уменьшаем на фиксированный процент для iPhone 5/5S. Наш визуальный дисплей основан на размере экрана iPhone 6, поэтому мы сохраняем iPhone 6 в качестве базовой линии.
Я уверен, что есть лучший способ сделать это. Может кто-нибудь, пожалуйста, помогите мне в этом вопросе.
3 ответа
Хитрость в всплеске.
Default-568h@2x.png 640 x 1136
Default.png 320 x 480
Default@2x.png 640 x 960
Просто добавьте в проект, только перетаскивание больше не нужно, вам не нужно никуда добавлять этот всплеск, просто оставьте их в исходном проекте. Ищите проекты по этим именам и читайте с одинаковым дизайном приложение на всех устройствах, включая ipad.
Больше информации здесь
Хорошо, позвольте мне поделиться своим способом справиться с этой ситуацией.
Мое приложение предназначено для:
iPhone 5 - размер экрана 4,0 дюйма
iPhone 6 - размер экрана 4,7 дюйма
iPhone 6+ - размер экрана 5,5 дюйма
Мой БАЗОВЫЙ телефон - экран iPhone 5 (4 дюйма)
Поэтому я попросил дизайнера иметь дизайн PSD, имеющий размер 4 дюйма, и то же самое я следовал при реализации в Storyboard XCode и самое важное, когда у вас есть правильный дизайн и шрифт для макета. нам нужно тщательно определить Auto-Layout.
Примечание. Все необходимые ресурсы / значки представлены в трех размерах.
- 1x для iPhone 5
- 2x для iPhone 6
- 3x для iPhone 6+
Во-первых, вы не используете переключатель на основе трех возможных устройств. Во-первых, вы запутываете пользователей iPhone 4s и сбиваете с толку миллиарды пользователей iPad (если у вас нет версии для iPad, то на iPad появляется взорванный экран 4s). Во-вторых, вы не знаете, какие разрешения будут у будущих устройств. И если вы хотите, чтобы ваш iPad работал правильно на iPad, есть два размера, вы можете поворачивать его, и тогда у вас есть пять способов разделить экран.
Большая ошибка в самом начале: вы настаиваете на согласовании заданного дизайна пиксель за пикселем. Отправьте ваших дизайнеров на курс, где они узнают, как работает устройство iOS. Я процитирую Fogmeister, распечатаю это крупным шрифтом и повешу на столы вашего дизайнера: "Это разные устройства. Ваше приложение будет выглядеть по-разному на всех. Ваше приложение должно выглядеть по-разному на каждом из них. Ваш дизайнер должен знать это". и предоставить дизайн, который подходит для каждого устройства. "
Даже если вы хотите, чтобы 5, 6 и 6+ экраны выглядели одинаково, за исключением размера, это плохой дизайн. Большие шрифты не просто больше. Тот же шрифт на 36 пунктов - это не просто 18 пунктов под увеличительным стеклом, есть небольшие различия. Толщина линий не должна увеличиваться при увеличении размера, поэтому вы получите плохой дизайн.
Чтобы на самом деле использовать экран большего размера, либо построить на основе iOS 9 SDK, либо предоставить стартовые экраны в необходимых размерах (вплоть до iOS 8, Apple предполагает, что, если у вас нет, например, стартового экрана размером 6+, вы не знаю, как обращаться с устройством, поэтому они имитируют меньшее).
Затем вы читаете размер экрана и используете его для масштабирования, или используете автоматическое расположение. Авто макет это зверь, с которым вы должны научиться справляться. Это требует времени. И убедитесь, что 6+ может отображать больше информации, чем 6 или 5, в противном случае владельцы более крупных телефонов будут раздражены вами.