2016-07-08 4 views
0

У меня возникла проблема с Autolayout. Я хочу настроить простой контроллер прокрутки, со следующим шаблоном View -> ScrollView -> View -> «Весь мой контент», который объясняется повсюду при поиске в Интернете.iOS - Scrollview и равные ширины не работают

Вот моя Раскадровка: enter image description here

В теории все правильно, но ограничение Равных Ширинов, кажется, ведет себя очень странно. Я сделал видео для вас, чтобы быть в состоянии видеть:

https://www.youtube.com/watch?v=lAezdxg5L4E&feature=youtu.be

PS: Контроллер вида не связан с * ViewController.swift, поэтому нет самодельного кода позади этого контроллера.

Как это решить? Спасибо.

ответ

2

Вы выложили свои ограничения для wCompact hRegular класса размер, который распространяется на всех iPhone'ов в Портрет. Когда вы переключаетесь на пейзаж, ни одно из ограничений не установлено, что объясняет ваши проблемы. Преобразуйте свои ограничения в wAny hAny и все будет хорошо.

После воссоздания вашей проблемы, я сделал это, чтобы преобразовать в затухающего Хани:

  1. Я пошел к каждому ограничению и выключил галочку рядом с Wc Hr установлен. Вам также нужно будет сделать это для ScrollView и Container.
  2. Затем я установил класс размеров обратно на wAny hAny.
  3. Затем я вернулся к каждому скованности и ScrollView и контейнер и включил галочки рядом с установленной и удалил Wc Hr один, нажав на «х».

Если вы сделаете это, ваш зеленый вид контейнера будет отображаться в обоих Портрет и Пейзаж и будет перемещаться по вертикали.


Две подсказки:

  1. Если причина установить wCompact hRegular, что вы нашли это отвлекает внимание на работу с квадратом ViewController, затем нажмите на ViewController в раскадровке и установите Моделируемые показатели Размер до iPhone 4,7-дюймовый в Атрибут Инспектор.
  2. Вы действительно должны установить Равные ширины между Контейнером и ScrollView вместо настройки Равные ширины между контейнером и видом верхнего уровня. В вашем случае это не имеет значения, потому что ScrollView и его SuperView имеют одинаковую ширину. Но если ваш ScrollView не был всей шириной экрана, то вы хотите ограничить ширину контейнера шириной ScrollView, чтобы предотвратить горизонтальную прокрутку.

Demo in iPhone5s Simulator

+0

ли эту работу для вас? – vacawama

+0

Спасибо, он решил мою проблему, я не знал о w * и h * :) – NathanVss

0

Я вижу, вы используете класс размера, возможно, у вас нет contraint для iphone landcape

+0

Это не ответ на вопрос –

1

Если вы говорите о contentView (контейнера в приложении) в Scrollview, если не работает так , например. если вы установите contentView внутри scrollview равным ширине и высоте прокрутки, если не будете работать.

Если subviews containerView сложный, я обычно проектирую contantView вне прокрутки. (см. скриншот) и установите его программно.

Или я просто установил автоматическую компоновку равной ширины как для scrollView, так и для контейнера scrollview. (См скриншот)

enter image description here

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