2014-11-03 2 views
7

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

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

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

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

Ссылка: Really helpful information about backwards compatibility with size classes.

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

ответ

15

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

  • приложение построено с использованием Xcode версии или позже
  • Целевым развертывания приложения является раньше, чем прошивка 8
  • классы Размера указаны в раскадровка или XIB файл
  • значение компоненты высоты не является компактным (да, это ваш случай, это не возможно в прошивке 7, к сожалению,)

Существует небольшое объяснение здесь: https://stackoverflow.com/a/24976792/2190175

+3

Неверная точка 3 - xibs Поддерживается: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/DeployingSizeClassesonEarlieriOSVersions.html#//apple_ref/doc/uid/TP40014436-CH13- SW1 –

+1

@ Аустен отредактировал его. Теперь пункт 3 верен: «Типы размеров указаны в раскадровке или файле xib» – Martin

+0

Спасибо за исправление. Классы классов действительно поддерживаются в xibs для iOS 7.0, начиная с XCode 6.1.1. Но ограничения на обратную совместимость по-прежнему применяются. –

-1

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

+0

Я предполагаю, что я не сказал, но я имел в виду обратной совместимости классов размеров. Для моего проекта я в конечном итоге сделал iOS 8 минимальной поддерживаемой версией. Как ссылка, я нашел это [ссылка] (http://swiftiostutorials.com/backward-compatibility-ios-size-classes/) только сейчас, говоря о том, что, на мой взгляд, было моей проблемой выше. –

Смежные вопросы