Как задержать/замедлить скорость панорамирования UIScrollView

У меня есть UIScrollview, с помощью которого я могу увеличивать и уменьшать масштаб и перемещаться. Тем не менее, я хотел бы придать ScrollView плавающее ощущение, когда перемещение пальца слева направо на экране заставляет UIScrollView перемещаться таким образом, чтобы он постепенно ускорялся в начале и постепенно замедлялся в конце.

Ничего слишком драматичного или дезориентирующего, но чтобы придать UIScrollView приятное ощущение невесомости. Возможно ли это, и если да, то как мне это сделать?

Вся помощь приветствуется.


person Isaac A    schedule 12.04.2016    source источник


Ответы (2)


Как упоминалось в другом ответе, UIScrollView имеет свойство decelerationRate с двумя предопределенными значениями констант UIScrollViewDecelerationRateFast и UIScrollViewDecelerationRateNormal.

Но если вы хотите замедлить скорость замедления, вы можете использовать собственное значение с плавающей запятой, например:

scrollView.decelerationRate = 0.4;

Просто попробуйте поэкспериментировать с этим значением и найти то, что подходит вам лучше всего.

person Vladimir K    schedule 12.04.2016
comment
Это отлично работает для замедления, спасибо! Хотя я также надеялся на форму смены AccelerationRate, если есть какие-либо известные способы сделать это. - person Isaac A; 12.04.2016
comment
Нет простых способов сделать это. Вы можете изучить возможность изменения стандартного распознавателя жестов панорамирования в UIScrollView и попытаться контролировать его смещение, получая жесты от этого распознавателя. Или добавьте другой UIPanGestureRecognizer для просмотра прокрутки и используйте его вместо этого. В любом случае, это гораздо более сложный вопрос, чем просто изменение скорости замедления. - person Vladimir K; 12.04.2016
comment
Хорошо, в любом случае спасибо за помощь с первым пунктом :) Я принимаю это как ответ из-за того, что поплавок имеет больший диапазон использования, чем предустановленные значения, как в случае с ответом ниже. - person Isaac A; 12.04.2016
comment
Спасибо! Рад помочь :) - person Vladimir K; 12.04.2016

Доступны два варианта,

scrollView.decelerationRate = UIScrollViewDecelerationRateFast;
scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;

Если это может помочь вам!

person Ketan Parmar    schedule 12.04.2016