Как работает Scrollview с Autolayout, и почему установление нижнего вертикального ограничения пространства заставляет егIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Как работает Scrollview с Autolayout, и почему установление нижнего вертикального ограничения пространства заставляет ег

Сообщение Anonymous »

Я пытаюсь понять, как работает 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Горизонтальный Scrollview внутри вертикального Scrollview не работает
    Anonymous » » в форуме Javascript
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Установление уникального ограничения с помощью бегемого API?
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Swift AutoLayout — PKCanvasView contentSize
    Anonymous » » в форуме IOS
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • IOS AutoLayout - не в силах иметь высоту
    Anonymous » » в форуме IOS
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Использование вида прокрутки с Autolayout Swift
    Anonymous » » в форуме IOS
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»