Я использую классы AutoLayout и Size, но с выпуском iOS 10 и нового Xcode 8.0 появилась одна новая опция Vary for Traits
. Является ли это заменой Size Classe на разную ширину и высоту устройств.
При установке width
флажка отображается varying 14 compact width devices
.
При установке height
флажка отображается varying 18 compact height devices
.
При установке обоих флажков он отображается varying 11 compact width regular height devices
.
Как использовать эти возможности? Можем ли мы использовать AutoLayout с классами размера, такими как Xcode7.0? Если у кого-то есть глубокие знания, пожалуйста, объясните это.
ios
xcode8
ios10
ios-autolayout
Technerd
источник
источник
Ответы:
Это просто дополнение к тому, как быстро использовать «Различные черты» в вашем проекте для добавления различных макетов для iPad и iPhone.
Пожалуйста, прочтите это, чтобы узнать больше о классах размера.
https://developer.apple.com/reference/uikit/uitraitcollection
Если вы пропускаете пример, который следует ниже, обязательно прочтите сводку в конце.
Вам нужна кнопка разной ширины на iPhone и iPad. Первый имеет ширину 80, а второй - 300.
Варьируйте черты с несколькими ограничениями, как установлено.
ШАГИ:
ВЫВОД :
Обратите внимание, что всего добавлено два ограничения, и в обоих ограничениях значения различаются в зависимости от выбранного класса размера.
Варьировать для признаков с одним ограничением, установлено несколько классов размера
ВЫВОД :
Это кажется лучшим вариантом, чем добавление двух ограничений, когда требуется только одно ограничение, а постоянное значение отличается.
КОГДА ИСПОЛЬЗОВАТЬ, ЧТО ИСПОЛЬЗОВАТЬ:
Оба подхода в основном делают одно и то же, устанавливая значения для классов размера.
Но # Method1 используется, когда вы хотите добавить ограничение специально для устройства или, скажем, класса размера. Например, в iPhone кнопка должна быть от Top 50 пунктов, а в iPad она должна быть центрирована по горизонтали и вертикали. В таких ситуациях вам необходимо использовать VaryForTraits, поскольку он открывает двери для добавления ограничений для определенного класса размеров.
# Method2 используется, когда вам нужны разные постоянные значения для одного и того же типа ограничения.
PS: ДЛЯ ВСЕХ, КТО НЕ МОЖЕТ ПОЛУЧИТЬ ПРИМЕР РАБОТЫ
Убедитесь, что вы добавляете только необходимые ограничения как установленные. Флажок «Установлено» должен отображаться только для ограничения, необходимого для класса размера. Это ключ!
Просто добавьте верхнее ограничение и ведущую к uiButton в представлении. Выберите верхнее ограничение и снимите флажок с базовой опции «Установлено» со знаком «плюс». Теперь, нажав на знак «Плюс», добавьте вариацию в C R и отметьте эту опцию. Теперь смените устройство с iPhone на iPad с различными комбинациями ориентации. Это ограничение будет применяться только для класса размера C R, который является iPhone в портретной ориентации. Если флажок рядом с основным установленным (тот, который отмечен символом плюса) установлен, это означает, что ограничение должно применяться ко всем классам размеров.
РЕЗЮМЕ :
Вариация характеристик - это изменение представления вашего пользовательского интерфейса, основанное на конфигурации устройства. Варианты свойств пользовательского интерфейса не ограничиваются только ограничениями, но могут применяться к гораздо большему. Например, изменение цвета фона и других элементов, когда устройство настроено на темный стиль. Вариант может применяться к элементу пользовательского интерфейса, например к удалению ограничения, или к свойству класса представления или ограничения, например шрифту для метки. Вы можете варьировать:
Размер или положение вида
Установка вида
Установка ограничения
Константа ограничения
Шрифт
Цвет шрифта, оттенка или фона
Поля макета
Файл изображения
Конкретный набор свойств, которые вы можете изменить, зависит от класса элемента. В этом примере мы продемонстрировали использование - установки ограничения & - константы ограничения. Другие довольно просты и их легко вывести.
источник
Варианты черт - это эволюция опции классов размеров, которая присутствовала в прошлой версии Xcode. Это позволяет делать гораздо более изящные и точные вариации, основанные на чертах характера. Конечно, это не ограничивается только вариантами iPad / iPhone, но вы также можете указать варианты в зависимости от ориентации и другого устройства.
В других ответах в этой ветке есть некоторые недостатки и неточности, возможно, самый эффективный способ дать ответ - это привести пример. Для ясности мы ограничим наш пример только кнопкой и двумя макетами. Однако, как объясняется ниже, вы можете расширить следующий пример по своему желанию. Наша цель - настроить положение кнопки между двумя разными макетами: альбомной и книжной на всех устройствах.
Примечание. Если не активирована опция «варьировать по признакам», все настройки макета и пользовательского интерфейса относятся ко всем признакам (т. Е. Всем классам размеров).
Начнем с того, что разместим кнопку на нашей раскадровке. Поскольку функция «варьировать по признакам» не включена, кнопка будет присутствовать во всех различных макетах. Если бы вместо этого мы включили вариацию для черт, кнопка будет ссылаться только на конкретную выбранную черту.
Теперь давайте включим «варьировать по признаку» и выберем вариацию в зависимости от роста. Вы должны увидеть, что нижний экран станет синим, и в соответствии с выбором вы увидите все затронутые устройства. Все идет нормально.
Снова нажмите кнопку и добавьте обычные ограничения. В нашем примере мы добавим верхний и левый ведущий пробел, а также ширину и высоту. После этого нажмите «Готово». Вы увидите, что нижняя часть экрана снова станет серой. Что происходит, так это то, что мы сказали Interface Builder добавить вышеуказанные ограничения только для классов (w: C h: R).
Теперь выберите альбомный режим внизу экрана. Вы увидите, что кнопка красного цвета, потому что в ней отсутствуют ограничения, которые вы добавили только для некоторых свойств. Снова выберите вариант изменения черт и снова выберите изменение высоты. Добавьте следующие ограничения:
и пресс делать разные. Теперь кнопка хорошо видна на экране как в альбомной, так и в портретной ориентации.
Собери и беги. Вы увидите, что кнопка изменится в зависимости от ориентации экрана.
По этому шаблону вы можете создавать более сложные макеты. Например, вы можете вначале выбрать вариацию для признаков и отбросить объекты UIKit только для определенного признака. Этот объект будет присутствовать только в указанном варианте и будет недоступен для других, что позволит вам создавать совершенно разные пользовательские интерфейсы на основе свойств.
источник
Это не что иное, как
size classes
он сам, но с другим представлением. до тех пор, покаxcode 7
мы не использовали классы размеров, и мы рассматриваем ихheight-width
вregular,compact and any
порядке,vary for traits
концепция такая же, но xcode конкретно объясняетexact device
. В более старой версии мы знаем эту иfor every iphone in portraint
т. Д. Информацию, в которой мы можем узнать точное устройство!Проверьте снимки экрана ниже,
Вам следует обратиться к wwdc2016 - видео для получения дополнительной информации!
Ссылка: This So Post
источник