Классы размеров в iOS 7

Я создал новое приложение в Xcode 6, используя классы размеров. После тестирования с iOS 7 я не могу понять, как заставить iPhone отображать определенный класс размера в ландшафтном режиме.

Сначала я разработал пользовательский интерфейс с ландшафтом iPhone как wAny hCompact, но iOS 7 этого не распознает. У меня был iPhone портрет в wAny hAny.

Затем я изменил его, так что теперь я использую wCompact hRegular для iPhone портрета. Затем я изменил wAny hAny на альбомную ориентацию. Но он не использует этот макет, когда устройство iOS 7 находится в альбомной ориентации.

Может ли iOS 7 использовать разные классы размеров в зависимости от того, является ли устройство портретным или альбомным? Если да, то какой размерный класс мне следует использовать?

Ссылка: Действительно полезная информация об обратной совместимости с размерными классами.

пс. Меня не интересует iPad, потому что устройство не отображает другой класс размера в зависимости от поворота устройства в iOS 8.


person Kurt Anderson    schedule 03.11.2014    source источник


Ответы (2)


Классы размеров точно работают в iOS 7. Но только при соблюдении нескольких правил:

  • Приложение создано с использованием Xcode версии 6 или более поздней.
  • Целью развертывания приложения является более ранняя версия, чем iOS 8.
  • Классы размера указаны в раскадровке или xib-файле.
  • Значение компонента высоты не является компактным (да, это ваш случай, к сожалению, это невозможно в iOS 7)

Здесь есть небольшое пояснение: https://stackoverflow.com/a/24976792/2190175

person Andrei Konstantinov    schedule 15.04.2015
comment
Пункт 3 неверен — xib поддерживаются: developer.apple.com/library/ios/recipes/ - person Austen Chongpison; 30.06.2015
comment
@Остен отредактировал это. Теперь пункт 3 верен: классы размеров указаны в раскадровке или файле xib. - person Martin; 25.08.2015
comment
Спасибо за исправление. Классы размера действительно поддерживаются в xibs для iOS 7.0, начиная с XCode 6.1.1. Но ограничения на обратную совместимость все еще применяются. - person Andrei Konstantinov; 04.09.2015

Нет, я боюсь, что классы размеров были введены в iOS 8. Вы можете написать некоторый условный код для запуска на iOS, чтобы определить размер/ориентацию экрана/просмотра и изменить макет таким образом, когда iOS 8 станет вашей минимальной целью условного кода можно удалить.

person Joseph Lord    schedule 14.01.2015
comment
Полагаю, я этого не говорил, но я имел в виду обратную совместимость классов размеров. Для моего проекта я сделал iOS 8 минимальной поддерживаемой версией. В качестве примечания я нашел эту ссылку только что рассказывающую о том, во что я верю. была моя проблема выше. - person Kurt Anderson; 15.01.2015