Прокрутка в iOS позволяет прокручивать прошлый контент

Я пытаюсь оптимизировать свое приложение для альбомной ориентации и небольших экранов. Для этого я в основном использую режимы прокрутки. В одном из моих представлений у меня есть представление контейнера. Этот контейнерный вид выглядит идеально, когда я переключаюсь между устройствами в раскадровке. Представление контейнера сопоставляется с контроллером представления, у которого есть представление прокрутки, в котором верхнее, нижнее, ведущее и конечное пробелы установлены на супервизор 0. Таким образом, он должен заполнить контейнер. Фактический контроллер представления установлен на Freeform Simulated Size с шириной 263 и высотой 190 (точный размер содержимого внутри представления прокрутки).

Внутри прокрутки у меня есть только ярлыки, отображающие информацию.

Кажется, все работает нормально. На небольших устройствах или в альбомной ориентации вы можете прокручивать, чтобы просмотреть содержимое и просмотреть все ярлыки.

Единственная проблема в том, что на всех устройствах и экранах всех размеров вы можете прокручивать контент. По осям X и Y. Что странно, так это то, что на горизонтальной оси ширина представления контейнера специально установлена ​​на 263. Единственная причина, по которой я использую представление прокрутки, - это высота. С шириной проблем нет даже на экранах меньшего размера. Но он по-прежнему позволяет пользователю прокручивать по горизонтали.

В более конкретном примере на iPhone 4s в альбомной ориентации вид контейнера имеет ширину 263 и высоту 90. Но сам контент имеет ширину 263 и высоту 190. Итак, я хочу, чтобы пользователь мог прокрутить вниз, чтобы просмотреть оставшуюся часть этих 100 материалов. Но в настоящее время он позволяет пользователю также прокручивать в сторону и прокручивать за конец содержимого при прокрутке вниз.

Как я могу исправить это, чтобы пользователь не мог прокручивать контент?

Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация или информация. Объяснение деталей раскадровки иногда может быть немного сложным, поэтому я был бы рад предоставить любые дополнительные сведения, чтобы сделать его более понятным.


person Charlie Fish    schedule 07.05.2017    source источник


Ответы (1)


Как и в случае с ответом на ваш другой вопрос, важно понимать, что содержимое в режиме прокрутки определяет прокручиваемую область.

Предположим, у вас установлены ограничения TopLabel на Leading: 0 и Top: 0. Метка будет в верхнем левом углу content и будет определять верхний левый угол содержимого прокрутки. Рамка.

Теперь поместите «BottomLabel» ниже и правее и установите ограничения на Trailing: 0 и Bottom: 0.

На этом этапе автоматическая компоновка не знает, где разместить верхнюю и левую часть «BottomLabel», потому что прокручиваемая область не полностью определена.

Итак, если вы добавите ограничения к «BottomLabel» для Leading: 60 и Top: 400, верхний левый угол «BottomLabel» будет размещен на 60 400, а область прокрутки - размер содержимого прокрутки - будет 60 + width of BottomLabel x 400 + height of BottomLabel

Чтобы избежать прокрутки за последним представлением / изображением / меткой, которое вы хотите увидеть, необходимо убедиться, что ограничения этого элемента управляют шириной и высотой содержимого scrollview.

person DonMag    schedule 08.05.2017