2013-10-06 3 views
8

Я использую UISnapBehavior, но он слишком быстро переключается по своему вкусу. Есть ли способ замедлить его? Или, другими словами: есть ли способ настроить эластичность объекта с той точкой, где он должен защелкнуться?Slow down UISnapBehavior

ответ

14

Я был в состоянии решить это, добавив вид на UIDynamicItemBehavior, а также установив resistance.

UIDynamicItemBehavior *dynamicItemBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[ view ]]; 
dynamicItemBehavior.resistance = 100; 
[animator addBehavior:dynamicItemBehavior]; 
+0

Можете ли вы опубликовать фрагмент кода для этого? Я делаю то же самое, но не вижу влияния на скорость привязки ... –

+0

А! Nevermind, я использовал значения от 0 до 1, значения более 1 делают трюк –

+0

ya @AlfieHanssen, я использую значения 50 и 100 прямо сейчас в своем приложении – drewag

2

Попробуйте установить свойство поведения damping на число> 1.0. Заголовок говорит, что damping должен оставаться в [0.0, 1.0], однако значения, превышающие 1,0, работают нормально.

+0

Это может быть лучший способ, если вы хотите повлиять на поведение привязки, не затрагивая другую физику элемента, который был привязан. Например, если у вас есть скорость на предмете и установите сопротивление высоко, скорость тоже будет иметь меньший эффект. Однако, к сожалению, при настройке демпфирования все становится вялым и неуклюжим с привязкой, и мне кажется, что это ошибка. –

+0

Спасибо, привязка с демпфированием 10 выглядит хорошо для меня –