Как создать объект с боковой прокруткой?

#cocoa-touch #ios

#cocoa-touch #iOS

Вопрос:

Я хотел бы создать объект с боковой прокруткой шириной всего 200 пикселей и высотой 50 пикселей. Этот объект с боковой прокруткой будет содержать пять разных объектов, которые при прокрутке в середину действуют так, как если бы они были выбраны. Как я мог бы это сделать?

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

Ответ №1:

Режим боковой прокрутки достигается с помощью UIScrollView, для pagingEnabled которого установлено значение YES. Установите ширину вида прокрутки в соответствии с размером ваших страниц. Ваш делегат просмотра прокрутки может вычислить, какой объект находится на экране, путем деления contentOffset.x на ширину вида прокрутки.

Если вы хотите отображать на экране несколько элементов одновременно, но при этом переходить на страницу между отдельными элементами — вспомните, например, как приложения iWork отображают несколько документов — потребуется выполнить три шага:

  1. Установите ширину вида прокрутки равной ширине объектов, а не ширине экрана.
  2. Установите для clipsToBounds свойства вида прокрутки значение NO, чтобы оно отображало объекты, которые не находятся в рамке вида прокрутки.
  3. Подкласс UIScrollView и переопределите -pointInside:withEvent: , чтобы вернуть YES, если точка находится в области, в которой вы хотите реагировать на касания. (Например, если вы хотите реагировать на касания во всей ширине экрана, просто игнорируйте их x и убедитесь, y что они находятся между верхней и нижней частями вида.) Используйте этот подкласс вместо стандартного UIScrollView.