我正试图加速UIView的时间/距离。到目前为止,似乎UIPushBehavior
是连续的,即它不会停止直到它碰到一个不可移动的物体。有没有办法加速UIView
随着时间的推移?或者距离?
答案 0 :(得分:2)
有几点想法:
如果你想减慢推动时间,以便一次推动转换到一些有限的行进距离,你必须(a)添加一个线性resistance
(所以它减慢速度); (b)使用UIPushBehaviorModeInstantaneous
(因此不会继续推动)。要添加resistance
,您需要添加UIDynamicItemBehavior
:
UIDynamicItemBehavior *resistanceBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[viewToAnimate]];
resistanceBehavior.resistance = 1.0;
[self.animator addBehavior:resistanceBehavior];
在控制每次推动产生的距离方面,这是(a)你使用的pushDirection
向量的大小的组合; (b)resistance
您在UIDynamicItemBehavior
中申请的项目density
; (c)您搬家的物品的大小; (d)UIDynamicItemBehavior
您在UIView
中申请的项目UIPushBehaviorModeInstantaneous
。在您实现单次推送所需的距离之前,最好先处理这些变量。
另一方面,如果您希望“加速UIPushBehaviorModeContinuous
一段时间”,而不是pushDirection
,则应使用UIPushBehavior
。通过持续施加力,它将在UIDynamicAnimator
中继续加速,直到从{{1}}移除{{1}}。