2013-02-08 2 views
4

Я хочу сделать пейджинг/прокрутку в UIScrollView быстрее, поэтому, когда пользователь оставит свой палец, следующая страница будет быстрее, чем обычно, независимо от скорости ускорения.Как ускорить прокрутку в UIScrollView?

Заранее спасибо

+0

Я пробовал свойство 'decelerationRate', но ничего не изменилось. – 4mahmoud

ответ

4

Если я правильно понимаю ваш вопрос, вы настроить ScrollView привязать к страницам (pagingEnabled = YES). Когда пользователь поднимает палец, вы хотите, чтобы он привязывался к ближайшей странице быстрее, чем то, что она сейчас делает?

Если это то, что вы пытаетесь сделать, это то, что я рекомендую:

  • ОТКЛЮЧИТЬ pagingEnabled (pagingEnabled = NO). Мы сделаем это сами.
  • Установите некоторый объект (возможно, ViewController) в качестве делегата прокрутки.
  • В делегате Scrollview переопределить метод scrollViewDidEndDragging:willDecelerate:. Вы также захотите переопределить метод scrollViewWillEndDragging:withVelocity:targetContentOffset:, чтобы вы могли получить скорость перетаскивания.
  • В scrollViewDidEndDragging:willDecelerate: вы можете вычислить направление перетаскивания (используя скорость, полученную вами от другого метода) и смещение на ближайшую страницу. Оттуда это так же просто, как установка contentOffset прокрутки с использованием блока анимации UIView с желаемой продолжительностью. Например:

[UIView animateWithDuration:.25f animations:^{ scrollview.contentOffset = calculatedCGPoint; }];

Это должно дать вам желаемый эффект.

Смежные вопросы