Создал новый проект с нуля в Swift в Xcode 6 (Beta 1) и заметил странное поведение с раскадровками и результатами, которые я просматриваю.
Я создал простой интерфейс (как показано ниже) с включенными свойствами View Controller. Когда я запускаю это в симуляторе, я ожидал, что «Hello, World» будет центральным в пользовательском интерфейсе - однако кажется, что этот «квадрат» просто вписывается в экран iPhone и, следовательно, отображается неправильное представление (см. Ниже ).
У меня вопрос: кто-нибудь еще видел такое поведение и как они его исправили?
Благодарность!
ios
iphone
interface-builder
xcode6
Сахарная вата
источник
источник
Ответы:
Хотя ответ Асифа Билала представляет собой более простое решение, которое не включает классы размера (которые были введены в iOS 8.), настоятельно рекомендуется вам привыкнуть к классам размера, поскольку они являются будущим, и вы в конечном итоге все равно прыгнете в некоторые точка ".
Вероятно, вы не добавили ограничения макета.
Выберите свой ярлык, нажмите кнопку ограничений макета внизу:
В этом меню добавьте ширину и высоту (она НЕ должна быть такой же, как у меня), установив соответствующие флажки и нажав кнопку «Добавить ограничения». Затем, удерживая нажатой клавишу Control, перетащите метку в главное представление, а затем, когда вы отмените щелчок, у вас должны быть параметры для центрирования по горизонтали и вертикали в контейнере. Добавьте оба, и вы должны быть настроены.
источник
Выполните следующие действия, чтобы решить проблему
В раскадровке выберите любое представление, затем перейдите в Инспектор файлов. Снимите флажок «Использовать классы размеров», вам будет предложено сохранить данные классов размеров для: iPhone / iPad. Затем нажмите кнопку «Отключить классы размеров». Это приведет к увеличению размера представления раскадровки с выбранным устройством.
источник
Если вы используете Xcode 6 и разрабатываете для iOS 8, ни одно из этих решений не является правильным. Чтобы правильно настроить размеры представлений только для iPhone, не отключайте классы размеров, не отключайте предполагаемые метрики и не устанавливайте ограничения (пока). Вместо этого используйте элемент управления size class, который представляет собой текстовую кнопку, которую легко пропустить в нижней части Interface Builder, которая изначально читается как «wAny hAny».
Нажмите кнопку и выберите Компактная ширина, Обычная высота. Это изменит размер ваших представлений и охватит все портретные ориентации iPhone. Документы Apple здесь: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/SelectingASizeClass.html или выполните поиск по «Выбор класса размера в Interface Builder»
источник
В раскадровке выберите свой ViewController и перейдите в Инспектор атрибутов. В самом верху, в разделе Simulated Metrics, у вас есть свойства Size и Orientation, для которых установлено значение Inferred. Измените их на желаемые значения.
Чтобы приложение правильно отображалось на экране другого размера, вам также необходимо установить ограничения, как описано Джаном Пойразоглу в первом посте.
источник
У меня была эта проблема в xcode 6, и есть способ разрешить конфликты изменения размера. Если вы выберете вид, внизу вы увидите значок, который выглядит как | -Δ- |. Если вы нажмете на нее, ваш проект будет изменять размер для разных устройств.
источник
Перейдите к инспектору атрибутов (правый верхний угол) в Simulated Metrics, у которого есть свойства Size, Orientation, Status Bar, Top Bar, Bottom Bar. Для SIZE измените Inferred -> Freeform.
источник
На странице раскадровки перейдите в Инспектор файлов и снимите флажок «Использовать классы размера». Это должно уменьшить ваш контроллер представления до обычного размера iPhone, с которым вы были знакомы. Обратите внимание, что использование «классов размеров» позволит вам разрабатывать свой проект на многих устройствах. Как только вы снимете этот флажок, Xcode выдаст вам предупреждающий диалог, как показано ниже. Это должно быть самоочевидным.
«Отключение классов размеров ограничит этот документ хранением данных для одного семейства устройств. Данные для класса размера, наилучшим образом представляющего целевое устройство, будут сохранены, а все другие данные будут удалены. Кроме того, сегменты будут преобразованы в их не -адаптивные эквиваленты ".
источник
Для любого, кто использует XCode 7, очень легко разработать дизайн для определенного размера устройства (вместо квадратного холста по умолчанию).
В Интерфейсном Разработчике выберите свой ViewController или Scene в левом меню. Затем в разделе
Show the Attributes Inspector
перейдите кSimulated Metrics
и выберите желаемоеSize
из раскрывающегося меню.источник
Вы, вероятно, должны использовать «Устранение проблем с автоматическим макетом» (нижний правый значок треугольника в представлении раскадровки) для добавления / сброса предлагаемых ограничений (Xcode 6.0.1).
источник