Я потратил два дня на тестирование различных решений для Подходит для смешанных и чистых Autolayout, чтобы достичь того, что было тривиальной настройкой прокрутки до автовыключения, и теперь он официально - я должен быть слишком глуп. Я настраиваю это в основном на Storyboard (ну, это так, как есть).
Итак, вот моя просьба о помощи.
Viewtree:
UIView
-UIView
-UIView
..-UIScrollview
...-UIButton
...-UIButton
...-UIButton
Кнопки должны прокручиваться по горизонтали (слева направо и наоборот). Может кто-нибудь, пожалуйста, дайте мне знать, как установить ограничения для достижения этого, используя чистый Autolayout???
-
Я пробовал смешанный подход, например:
UIView
- UIView
- UIView
..-UIScrollview
...-UIView (contentview)
....-UIButton
....-UIButton
....-UIButton
... и установить фиксированные ограничения ширины и высоты для параметров contentview
и translatesAutoresizingMaskIntoConstraints
в соответствии с технологией Apple TechNote. Кнопки и scrollview настроены с использованием ограничений. Это получает прокрутку scrollview (yay), но, увы, она прокручивается слишком далеко! Насколько я могу судить, ширина прокрутки как-то удвоена от того, что я установил в contentview на???!!!
Я также попробовал использовать метод чистого автозапуска, как с contentview
, так и без него. Все представления translatesAutoresizingMaskIntoConstraints=NO
, за исключением self.view
. Кнопки имеют фиксированные ограничения ширины/высоты и прикреплены ко всем четырем краям прокрутки. Ничего не прокручивается.
Итак, я полностью озадачен, почему я не могу заставить его работать правильно. Любая помощь очень ценится, и если вам нужна какая-либо другая информация, пожалуйста, спросите!
ОБНОВЛЕНО Скриншот с решением - buttonZ:
РЕДАКТИРОВАТЬ @Джейми Форрест Таким образом, решение оказывается неправильным трейлинг-ограничением на последней кнопке. Вместо 6441 значение, которое я установил, было отрицательным, -6441. Трудность в том, что при настройке значения в раскадровке на панели инструментов Pin есть два варианта:
Текущее значение холста отрицательное (что приводит к отсутствию прокрутки), а параметр ниже положителен (активирует прокрутку). Это означает, что я не глуп, но, по крайней мере, полуслепую. Хотя, на мой взгляд, разве это не мешает, что XCode не показывает ошибку для "неправильной" настройки?
СОГЛАСНО СНОВА Теперь это смешно... изменение конечного значения с -6441 (без прокрутки) до 6441 с возможностью прокрутки. Но мой старый друг "слишком много содержимого" вернулся, что привело к тому, что размер контента вдвое больше, чем он должен быть! Решение получить правильный свиток содержимого состояло в том, чтобы установить ограничение на конец в ZERO! Это не очевидно при работе в Storyboard, но, глядя на код @Infinity James, это то, что должно быть.