Что касается исходного вопроса: ваш размерный класс ограничений автоматической компоновки кажется неправильным. Это приведет к тому, что ваше представление будет отображаться в одной комбинации ширины и высоты просто отлично и полностью потерпит неудачу в другом. Проектирование в любом классе размера, отличном от любого/любого, приведет к тому, что в нижней части Xcode указывается/предупреждается об этом.
В целом вы должны указать ограничения для всех поддерживаемых классов размеров. Самый простой способ - просто создать свое представление в любом/любом классе. Таким образом, ваш макет будет одинаковым для всех конфигураций. Вы можете изменить указанные ограничения только для одного класса, а также просто выбрать этот класс размера и проверить ограничения вида, включить/отключить их или добавить новые. Они будут установлены только в этом классе определенного размера. Чтобы просмотреть ограничение, вы можете выбрать его в раскадровке или дважды щелкнуть по нему в инспекторе размеров представления, к которому он принадлежит. Последний раздел в инспекторе размеров ограничения указывает, в каких классах размера он существует.
Чтобы перенести вид из класса один размер в другой бы просто значит изменить этот класс на размер каждый вид и ограничения ...
Ручной способ
Для сделайте так, чтобы вам нужно было добавить класс размера, на который вы хотите перейти, нажав +
рядом с Installed
и установите флажок x
слева от него. он размер класса, из которого вы хотите перейти. Если вы хотите перейти на любой/любой, не нажимайте на +
, просто поставьте галочку рядом с Installed
. И do не забудьте также изменить класс размера на самом объекте представления. Если вы не сделаете этого, представление просто не будет присутствовать в желаемом классе размера.
Автоматический способ
Это можно изменить просмотр исходного кода раскадровки файла, а также. Описана установка ограничения может выглядеть следующим образом
<variation key="default">
<mask key="subviews">
<exclude reference="fTD-HZ-ZT3"/>
</mask>
<mask key="constraints">
<exclude reference="eyr-oK-LvV"/>
</mask>
</variation>
<variation key="heightClass=compact-widthClass=regular">
<mask key="subviews">
<include reference="fTD-HZ-ZT3"/>
</mask>
<mask key="constraints">
<include reference="eyr-oK-LvV"/>
</mask>
</variation>
Атрибут key
в элементе вариации, очевидно, определяет класс размера. Default
смысл любой/любой. Было бы намного проще просто искать и заменять все вхождения класса размера, с которым вы хотите перенести, с классом размера, на который вы хотите перейти.Если вы переходите от класса или к классу по умолчанию, это немного сложнее, так как вам нужно изменить exclude
на include
и наоборот. Затем вам нужно будет добавить/удалить раздел класса полного размера, который вы переносите в/из. Немного больше работы, но все же намного проще, чем делать это вручную.
Однако вы должны быть осторожны, если в вашем представлении уже содержатся спецификации класса классов для классов с несколькими размерами, чтобы изменить только правильные.
Вы уверены, что все ограничения действительны и соответствуют классу нужного размера? – luk2302
Скорее всего, это так. Позвольте мне изучить это. – Myxtic
должно быть любым; – luk2302