Прокрутка горизонтального UIScrollView с шагом шага? - PullRequest
9 голосов
/ 23 ноября 2011

У меня есть UIScrollView, который можно прокручивать по горизонтали. Прокручиваемый контент отображается в столбцах.

Есть ли способ заставить прокрутку двигаться только с шагом, а не в пикселях (т.е. перемещать столбец за раз).

Диаграмма: enter image description here

Ответы [ 3 ]

7 голосов
/ 23 ноября 2011

Да, есть:

yourScrollView.pagingEnabled = YES;

Проверьте UIScrollView для получения дополнительной информации.

Если значение этого свойства равно YES, представление прокрутки останавливается на кратных границах представления прокрутки, когда пользователь выполняет прокрутку. Значением по умолчанию является NO.

Я полагаю, вам может понадобиться изменить структуру представления на что-то вроде этого:

+--------+
|        | <- UIView to hold your structure
+--------+

   +--+
   |  |    <- UIScrollView, clipsToBounds = NO, width = column.width
   +--+

+--+--+--+
|  |  |  |  <- UIView columns
+--+--+--+

Отцентрируйте UIScrollView по горизонтали и убедитесь, что ширина UIView, содержащая UIScrollView, кратна ширине UIScrollView

1 голос
/ 23 ноября 2011

Если вы ориентируетесь на iOS 5.0, вы можете использовать новый метод UIScrollViewDelegate scrollViewWillEndDragging: withVelocity: targetContentOffset. Это позволяет установить точку, в которой анимация прокрутки заканчивается после того, как пользователь перестал перетаскивать представление прокрутки.

1 голос
/ 23 ноября 2011

Хотя я думаю, что пейджинг - это, вероятно, правильный ответ, это не то, о чем вы спрашивали, а резкая прокрутка (столбцы «всегда»).Я полагаю, что вы можете предоставить -scrollViewDidScroll: делегат и настроить contentOffset для ближайшего столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...