У меня есть приложение для iOS, и при адаптации всего пользовательского интерфейса к автоматическому макету и классам размера для поддержки новых iPhone 6 и iPhone 6 plus я столкнулся со странной проблемой ... все мои прокрутки отлично работают в iPhone 4s, 5, 5s и 6... в iPhone 6 plus они прокручиваются не только по вертикали, но и по горизонтали... например, если размер содержимого прокрутки на пару пикселей шире, чем сам вид (поэтому он перемещается по горизонтали на пару пикселей а потом отскакивает). Я не понимаю, почему это происходит...
Прокрутка AutoLayout iOS 8 прокручивается горизонтально на iPhone 6 plus
Ответы (1)
Наконец-то я нашел правильный способ заставить его работать... Я сделал это следующим образом:
Иерархия представлений:
- UIView (основное представление) - UIScrollView (который я хочу иметь того же точного размера, что и основное представление) - UIView (представление контейнера, содержащее все материалы, которые будут отображаться в представлении прокрутки)
Ограничения:
Представление Containar:
— ширина равна ширине основного представления — 0 начальных, конечных, верхних и нижних полей с суперпредставлением (которое является представлением прокрутки)
UIScrollView:
- ширина равна ширине основного вида
- центрировать вид по оси X по горизонтали (центр X)
- 0 сверху нижнего поля с супервидом
person
Freedom
schedule
10.10.2014
Это не сработало для меня. Я также не понимаю, почему вышеизложенное будет работать, потому что представление содержимого управляет UIScrollView, но вы устанавливаете ширину UIScrollView
- person kgaidis; 21.10.2014
Моя проблема, я думаю, была вызвана ограничением -16 в начальном и конечном пространстве для прокрутки в его суперпредставлении, которое по умолчанию добавляется интерфейсным конструктором, если я говорю, что хочу, чтобы прокрутка имела тот же размер окна (не то же самое ширина ... добавляется, если я перетаскиваю границу прокрутки, чтобы сопоставить границы окна). Наложение ограничения на ширину прокрутки и центрирование его по X дало мне согласованный набор ограничений того, как я хотел, чтобы прокрутка выглядела
- person Freedom; 21.10.2014
@kgaidis — iOS делает необычные вещи, чтобы прокрутка работала с автомакетом: Технология Apple note UIScrollView и Autolayout Альтернативой является непосредственное задание UIScrollView.contentSize в коде после завершения компоновки. Из технической заметки кажется, что ограничения на внутреннее содержимое не делают того, что вы могли бы подумать, - они не определяют размер прокручиваемой области.
- person ToolmakerSteve; 29.03.2017