Я пытаюсь создать что-то в автозапуске, но scrollview делает невозможным что-либо сделать. Мне нужно изображение в верхней части прокрутки, которое имеет верхнюю и обе стороны, ограничено, и просто заблокирован аспектный рацион, поэтому дно может расширяться по мере необходимости. но когда я вставляю все и обновляю его, просмотр сжимается до квадрата 1x1 в углу. Я также попытался установить конечное и ведущее пространство в корневом представлении, но это тоже не сработало. WTFscrollview breaks autolayout trailing и ведущее пространство
ответ
Как @sdgandhi указал, при использовании autolayout в Scrollview, как минимум он должен иметь ограничения, которые позволяют ему выработать свою contentSize
.
Вы можете с радостью ограничить свой вид сверху, влево, вправо и в нижней части прокрутки. Это говорит прокрутку, что прокручиваемая область должна быть равна размеру этого вида (но не заставляет вид быть любым размером).
Мне кажется, что вы хотите сделать ширину изображения равным ширине экрана. В этом случае вы можете ограничить ширину изображения как вид, который содержит scrollview (если вид вашего контроллера просмотра является scrollview, тогда вместо этого вы должны иметь нормальный UIView
в качестве представления контроллера представления и добавить к нему прокрутку, сдерживая scrollview в верхнюю, левую, правую и нижнюю части). Это приводит к тому, что ваше изображение будет иметь ширину экрана, а если contentMode
настроен на поддержание пропорции, он попытается сделать свою высоту соответствующей высотой для изображения с такой шириной, что, в свою очередь, покажет scrollview, что его прокручиваемая область должна быть.
Я уже пробовал присваивать левое и правое ограничения представлению, содержащему scrollview. он ничего не делал –
Попробуйте использовать ограничение ширины при ограничении представлением контейнера, а не в левом и правом ограничениях - если вы используете ограничения слева и справа, вы в основном отключите scrollview (например, используя абсолютное позиционирование, если вы знакомы с CSS) , Вы ограничиваете изображение влево и вправо до scrollview (что позволяет ему знать, с чего начать и заканчивать его содержимое) и ширину изображения до ширины вид контейнера, которая заставляет ширину изображения, и, таким образом, позволяет scrollview знать, насколько широка его содержание есть. И не забудьте ограничить нижнюю часть прокрутки. – Rupert
О, человек, наконец, мы куда-то попадаем. установка ширины представления на ширину uiscrollview позволила ему делать то, что я хочу. Большое вам спасибо, я ударился головой об этом, чтобы больше, чем я хотел бы признать –
Чтобы использовать autolayout в целях прокрутки, вы должны иметь ограничения на каждом краю Scrollview (включая дно). Причина в том, что scrollviews должны знать размер своего контента.
С вашими ограничениями, установленными так, как они есть, прокрутка не знает, что это размер содержимого.
Кроме того, прямо сейчас, все, что вы говорите, об автоопределении - это то, что вы хотите изображение с определенным соотношением. Если бы это было вне прокрутки, это было бы хорошо, потому что верхний и боковой штыри предоставили бы ему достаточно информации для самого размера. Но из-за природы прокрутки это требует дополнительной информации. Вы можете добавить ограничения ширины и высоты и установить их приоритеты на низком уровне или отметить их как заполнители, , но вам нужно предоставить автозапускному движку больше информации для его расчета макета.
См https://developer.apple.com/library/ios/technotes/tn2154/_index.html для более глубокого обсуждения технических аспектов autolayout в UIScrollView
lol Я уже пробовал это. не удача –
Даже имея один вид и просто устанавливая все противопоставления со всех сторон на 0, все равно делает это 1x1 –
Хм, о! Вы устанавливаете ограничение соотношения сторон, но не имеете ограничений по ширине и высоте!Вы должны установить фактические ограничения ширины и высоты в дополнение к ограничению соотношения сторон, это позволит просматривать прокрутку на самом деле знать, каков его размер содержимого. – sdgandhi
- 1. iOS autolayout изменяет ведущее и конечное пространство
- 2. Autolayout жалуется на ведущее/конечное пространство для UIImageView
- 3. Ведущее пространство подходит как iOS7 и iOS8
- 4. Удалить ведущее пространство из колонок
- 5. Удалить ведущее пространство из диапазона
- 6. Как удалить ведущее свободное пространство
- 7. Ведущее пространство при использовании .split
- 8. XPath - обрезать ведущее свободное пространство
- 9. Почему ведущее белое пространство исчезло?
- 10. iOS AutoLayout с scrollview и клавиатурой
- 11. Autolayout scrollview with collectionview
- 12. ScrollView autolayout в раскадровке
- 13. scrollview form with autolayout
- 14. ScrollView With AutoLayout
- 15. autolayout scrollview лучший подход
- 16. Scrollview Autolayout с Tabbar и Navigationbar
- 17. Классы классов с AutoLayout и ScrollView
- 18. Autolayout ScrollView с динамическим контентом
- 19. AutoLayout с ScrollView в Swift
- 20. Autolayout с Scrollview в Xamarin
- 21. пользовательское ведущее пространство в веб-интерфейсе
- 22. Ведущее белое пространство при импорте данных CRM
- 23. Обрезать ведущее пространство с помощью PHP?
- 24. Почему выход Fortran имеет ведущее пространство?
- 25. Ведущее пространство с INSERT в MySql
- 26. Regex ведущее пространство/добавить отставая пробел перед/пунктуации
- 27. Как определить ведущее пространство в тексте
- 28. Ведущее пространство не сохраняется в IE
- 29. Microsoft Word/Outlook урезает ведущее пространство
- 30. Как исправить AutoLayout для моего ScrollView?
может быть проще в коде вместо IB – Nick
, но это всего лишь один пример. Я планирую иметь еще 10 вещей в scrollview. Правильный ответ не может быть настроен вручную, не так ли? –
Очевидно, что это вопрос предпочтения, но я считаю, что ограничения кодирования вручную намного яснее! – Rupert