2015-03-31 1 views
0

Я столкнулся с необычной проблемой авторотации на iPhone 6 плюс только (симулятор и фактическое устройство).iPhone 4 Plus Autorotation Issue

Я создал новый проект Xcode с единственным видом. И все, что у него есть, - это некоторые элементы пользовательского интерфейса в контроллере исходного представления (с соответствующими ограничениями). Вот как это выглядит на начальном запуске:

enter image description here

Но однажды, изменить ориентацию устройства, все элементы пользовательского интерфейса исчезают?!?!

enter image description here

Это не происходит на других устройствах.

Что мне здесь не хватает? Очень ценю вашу помощь.

+0

Вы уверены, что все ограничения действительны и соответствуют классу нужного размера? – luk2302

+0

Скорее всего, это так. Позвольте мне изучить это. – Myxtic

+0

должно быть любым; – luk2302

ответ

1

Что касается исходного вопроса: ваш размерный класс ограничений автоматической компоновки кажется неправильным. Это приведет к тому, что ваше представление будет отображаться в одной комбинации ширины и высоты просто отлично и полностью потерпит неудачу в другом. Проектирование в любом классе размера, отличном от любого/любого, приведет к тому, что в нижней части Xcode указывается/предупреждается об этом.

В целом вы должны указать ограничения для всех поддерживаемых классов размеров. Самый простой способ - просто создать свое представление в любом/любом классе. Таким образом, ваш макет будет одинаковым для всех конфигураций. Вы можете изменить указанные ограничения только для одного класса, а также просто выбрать этот класс размера и проверить ограничения вида, включить/отключить их или добавить новые. Они будут установлены только в этом классе определенного размера. Чтобы просмотреть ограничение, вы можете выбрать его в раскадровке или дважды щелкнуть по нему в инспекторе размеров представления, к которому он принадлежит. Последний раздел в инспекторе размеров ограничения указывает, в каких классах размера он существует.

example size class setting of constraint

Чтобы перенести вид из класса один размер в другой бы просто значит изменить этот класс на размер каждый вид и ограничения ...

Ручной способ
Для сделайте так, чтобы вам нужно было добавить класс размера, на который вы хотите перейти, нажав + рядом с 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 и наоборот. Затем вам нужно будет добавить/удалить раздел класса полного размера, который вы переносите в/из. Немного больше работы, но все же намного проще, чем делать это вручную.
Однако вы должны быть осторожны, если в вашем представлении уже содержатся спецификации класса классов для классов с несколькими размерами, чтобы изменить только правильные.

+0

Большое вам спасибо за подробное объяснение. Я попробую! – Myxtic

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

  • Нет связанных вопросов^_^