UISlider с переменной скоростью очистки (например, приложение iPod) - PullRequest
26 голосов
/ 02 января 2011

Приложение Apple iPod (Музыка) имеет ползунок (я полагаю, UISlider) с переменными скоростями очистки: чем дальше от ползунка вы перетаскиваете по вертикали, тем меньше доля горизонтальной скорости перетаскивания, которая отражается в изменении значения слайдер Кто-нибудь разобрался, как продублировать это поведение?

Ответы [ 2 ]

32 голосов
/ 03 января 2011

Хороший вопрос, который вдохновил меня на поиск решения. Я создал класс с именем OBSlider , который поддерживает переменные скорости очистки.

Решение вкратце: подкласс UISlider, переопределите -continueTrackingWithTouch:withEvent: и сделайте расчет изменения self.value в зависимости от движения касания самостоятельно. Таким образом, вы можете свободно влиять на коэффициент, с которым вы хотите умножить движение касания, чтобы получить новое значение ползунка.

Подробности читайте в моем блоге: OBSlider, подкласс UISlider с переменной скоростью очистки .

4 голосов
/ 05 января 2011

Отличная работа Оле!Я сделал несколько небольших модификаций, чтобы получить что-то более похожее на работу слайдера приложений iPod, когда палец приближается к UISlider!По сути, я обрабатываю переменную, чтобы отслеживать значение, соответствующее положению пальца, и, если пользователь приближается, я применяю другую формулу (которая не идеальна и может быть значительно улучшена).доступно здесь: http://github.com/sylverb/OBSlider

...