Прокрутка AutoLayout iOS 8 прокручивается горизонтально на iPhone 6 plus

У меня есть приложение для iOS, и при адаптации всего пользовательского интерфейса к автоматическому макету и классам размера для поддержки новых iPhone 6 и iPhone 6 plus я столкнулся со странной проблемой ... все мои прокрутки отлично работают в iPhone 4s, 5, 5s и 6... в iPhone 6 plus они прокручиваются не только по вертикали, но и по горизонтали... например, если размер содержимого прокрутки на пару пикселей шире, чем сам вид (поэтому он перемещается по горизонтали на пару пикселей а потом отскакивает). Я не понимаю, почему это происходит...


person Freedom    schedule 30.09.2014    source источник


Ответы (1)


Наконец-то я нашел правильный способ заставить его работать... Я сделал это следующим образом:

Иерархия представлений:
- UIView (основное представление) - UIScrollView (который я хочу иметь того же точного размера, что и основное представление) - UIView (представление контейнера, содержащее все материалы, которые будут отображаться в представлении прокрутки)

Ограничения:

Представление Containar:
— ширина равна ширине основного представления — 0 начальных, конечных, верхних и нижних полей с суперпредставлением (которое является представлением прокрутки)

UIScrollView:
- ширина равна ширине основного вида
- центрировать вид по оси X по горизонтали (центр X)
- 0 сверху нижнего поля с супервидом

person Freedom    schedule 10.10.2014
comment
Это не сработало для меня. Я также не понимаю, почему вышеизложенное будет работать, потому что представление содержимого управляет UIScrollView, но вы устанавливаете ширину UIScrollView - person kgaidis; 21.10.2014
comment
Моя проблема, я думаю, была вызвана ограничением -16 в начальном и конечном пространстве для прокрутки в его суперпредставлении, которое по умолчанию добавляется интерфейсным конструктором, если я говорю, что хочу, чтобы прокрутка имела тот же размер окна (не то же самое ширина ... добавляется, если я перетаскиваю границу прокрутки, чтобы сопоставить границы окна). Наложение ограничения на ширину прокрутки и центрирование его по X дало мне согласованный набор ограничений того, как я хотел, чтобы прокрутка выглядела - person Freedom; 21.10.2014
comment
@kgaidis — iOS делает необычные вещи, чтобы прокрутка работала с автомакетом: Технология Apple note UIScrollView и Autolayout Альтернативой является непосредственное задание UIScrollView.contentSize в коде после завершения компоновки. Из технической заметки кажется, что ограничения на внутреннее содержимое не делают того, что вы могли бы подумать, - они не определяют размер прокручиваемой области. - person ToolmakerSteve; 29.03.2017