it-swarm.com.ru

Xcode 6 GM Симулятор iPhone 6 - раскадровки не корректны, выглядят увеличенными

Я использую новый Xcode 6 GM Seed и тестирую свое приложение на симуляторах iPhone 6 и iPhone 6 Plus. В некоторых проектах, над которыми я ранее работал, я получаю странный эффект, а именно то, что вид, кажется, получает эффект «увеличения». 

Вот пример. Оба этих контроллера представления одинаковы (за исключением текста элемента навигации), вплоть до размера текста метки. Тем не менее, вы можете видеть, что виды выглядят по-разному.

увеличено

нормальный

Обратите внимание, что проект со странным эффектом масштабирования имеет цель развертывания 8.0.

Примечание: Я получил нормальный внешний вид, создав проект в новом Xcode 6 GM Seed (проекты, которые не работали, были созданы на более старых версиях Xcode).

18
arcticmatt

Это значение по умолчанию, и именно так все существующие приложения будут работать на новых iPhone - они будут «увеличены».

Чтобы создать приложение, которое на самом деле использует дополнительный экран, необходимо, как и в 4-дюймовых iPhone, добавить специальные изображения для запуска, характерные для двух iPhone 6.

Если вы используете каталоги ресурсов, перейдите в каталог ресурсов LaunchImages и добавьте новые образы запуска для двух новых iPhone. Возможно, вам придется щелкнуть правой кнопкой мыши и выбрать «Добавить новое изображение запуска», чтобы увидеть место для добавления новых изображений.

Кроме того, использование xib-файла Launch Screen вместо изображений решает эту проблему сразу же, и это рекомендуемый способ продвижения вперед. Вот шаги для добавления экрана запуска в ваше приложение: https://stackoverflow.com/a/25763870/422288

22
rmaddy

Похоже, Apple еще не обновила документы для новых размеров образа запуска, но вы можете найти их в Xcode. Если вы добавите новые образы запуска, как говорит Мэдди, вы сможете просмотреть новые размеры на панели инспектора. iOS 8 содержит три новых изображения и не требует других изображений, если строка состояния скрыта при запуске. Размеры:

iOS 8 iPhone Portrait
Retina HD 5.5  1242x2208
Retina HD 4.7  750x1334

iOS 8 Landscape
Retina HD 5.5  2208x1242

Вы можете добавить их в Xcode или отредактировать файл json в файле .xcassets и поместить изображения в пакет. Если вы решите отредактировать пакет, добавьте эти строки в начало файла:

{
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "736h",
      "filename" : "[email protected]",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "3x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "736h",
      "filename" : "[email protected]",
      "minimum-system-version" : "8.0",
      "orientation" : "landscape",
      "scale" : "3x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "667h",
      "filename" : "[email protected]",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "2x"
    }

Я сохранил соглашение об именах, которое они использовали ранее для портретных файлов. Раньше на телефонах никогда не было горизонтального выбора, поэтому я придерживался соглашения об именовании для iPad. Конечно, вы можете назвать их как угодно.

Правка: Обратите внимание, что единственный телефон, который будет запускаться в ландшафтном режиме, это iPhone 6 Plus. Остальные телефоны будут запускаться только в портретном режиме.

2
JScarry

Добавление образа запуска не решает эту проблему.

Вам нужно добавить LaunchScreen.xib в проект и добавить Launch screen interface file base name - LaunchScreen в Info.plist

Создайте новый проект с Xcode 6 GM. Вы увидите, что такое LaunchScreen.xib. Вы можете скопировать его в существующий проект.

2
Vince Yuan

большинство из того, что сказал @rmaddy, работает, но когда я перехожу к Images.xcassets для настройки LaunchImage, я просто выбираю «LaunchImage» и выбираю «Атрибут инспектора», на странице инспектора вы увидите соответствующие варианты конфигурации, шаги также работает для значков приложений

1
0oneo

@JScarry, ваше решение в порядке, но не позволяет отображать ландшафтное изображение на iPhone 6. Вот решение, которое работает (для этого требуется, чтобы и альбомные, и портретные изображения были в одном измерении 350x667, ландшафтное изображение должно быть просто повернутый)

0
Maciek Czarnik

Для меня решена проблема:

Мне пришлось нажать и на проект, и на цель, и изменить целевое семейство устройств, чтобы они указывали не только на iphone, но и на iPad. Только тогда увеличенный зум исчез

 enter image description here

0