Я пытаюсь понять, как работает uiscrollview в среде автоматического макета. До сих пор я пытался прочитать документацию Apple, исследования переполнения стека, исследования Google и изучение рабочего примера Мэтта Нойберга. Контент
view. Он зажигает контент к своему рамке, который, как правило, (но не
обязательно) совпадает с контентом главного окна приложения. А
просмотр отслеживает движения пальцев и соответственно регулирует начало
. Представление, которое показывает его контент «через» просмотр
, опирается на эту часть самого себя на основе нового происхождения, которое
прикреплено к смещению в представлении содержимого. Сам вид прокрутки не выполняет
без рисунка, за исключением отображения вертикальных и горизонтальных индикаторов прокрутки
. Вид прокрутки должен знать размер представления содержимого, поэтому
он знает, когда прекратить прокрутку; По умолчанию он «отскакивает» назад, когда
Прокрутка прокрутки превышает границы содержимого. (A), его подвеска - это UIScrollview (b), а UiscrollView имеет единый подход, который представляет собой Uiview (C). Допустим, мы хотим (C) высотой 1000 единиц. Для представлений (a), (b) и (c) мы изменяем высоту на 1000 на вкладке «Инспектор по размеру». В документации четко указывается «(Scrollview) зажигает контент по своему кадру, который, как правило, (...) совпадает с основным окном приложения». В нашем примере (а) будет совпадать с основным окном приложения, и для этого не требуется никаких ограничений. < /p>
ограничения между (a) и (b) < /strong> < /p>
Теперь документация была четкой о том, что (b) совпадает с (а), поэтому мы установим 4 ограничения между ними, ведущее пространство, сплошное пространство, топольное пространство и нижнее пространство для наблюдения за всеми константами. /> ограничения между (b) и (c) < /strong> < /p>
Документация здесь не так проста. В нем говорится, что (b) происхождение регулируется по сравнению с (c), поэтому (b) определенно должно быть меньше, чем (c). Поскольку мы знаем, что прокрутка будет только вверх и вниз, мы можем ограничивать левое и правое, одобренное (b) и (c) до нуля, и мы всегда хотим, чтобы он находился в середине, поэтому мы добавим выравнивание центра x. Мы добавим 3 ограничения между ними, ведущие пространство и пространство для присмотра с константой 0 и выравнивание центра x. Чтобы позиционировать представление, нам нужно что -то для верхней и дна, и, честно говоря, я не уверен, как эти ограничения должны быть настроены на основе документации. Основываясь на подражании примеру Мэтта Нойберга, я сделал их верхним пространством для наблюдения с постоянной нолью и нижним пространством, чтобы привлечь внимание с любым постоянным, которое он генерирует по умолчанию. Это нижнее пространство для контроля ограничения является особенным (по -видимому,), отныне оно будет упоминаться как «SpecialConstraint». < /P>
Итак ... что?! Мы начали этот абзац, сказав, что (b) определенно должно быть меньше, чем (c), и закончили его путем настройки ограничений, чтобы сделать их точно таким же размером. Вопрос 1 - Почему это? Достаточно просто, мы устанавливаем 1 ограничение, высота = 1000. < /P>
SpecialConstraint < /strong> < /p>
Теперь мы создаем выход для SpecialConstraint в контроллере View, и в методе ViewDiddload мы устанавливаем Self.specIncestraint.constant = 0; Это означает, что нижняя часть представления содержимого должно быть прикреплено точно в нижней части вида свитков, что не дало бы вам ничего, чтобы прокручивать вниз. Но это работает в примере Мэтта Нойберга. Вопрос 2 - Почему это? окно Похоже на просмотр бумаги через отверстие в стене, раздвинув бумагу вокруг. Way?
Подробнее здесь: https://stackoverflow.com/questions/155 ... tom-vertic
Как работает Scrollview с Autolayout, и почему установление нижнего вертикального ограничения пространства заставляет ег ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Горизонтальный Scrollview внутри вертикального Scrollview не работает
Anonymous » » в форуме Javascript - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-