我正在尝试在一段时间/距离内加速 UIView。到目前为止,UIPushBehavior
似乎是连续的,即它不会停止,直到它碰到一个不可移动的对象。有没有办法随着时间的推移加速 UIView
?还是距离?
P.S 我的物理白话不太好,所以请客气哈哈
最佳答案
几个想法:
如果您想随着时间的推移减慢插入速度,以便单次插入转化为一定的行进距离,您必须 (a) 添加线性
阻力
(这样它会减慢向下); (b) 使用UIPushBehaviorModeInstantaneous
(这样它就不会继续推送)。要添加阻力
,您需要添加一个UIDynamicItemBehavior
:UIDynamicItemBehavior *resistanceBehavior = [[UIDynamicItemBehavior alloc] initWithItems:@[viewToAnimate]]; resistanceBehavior.resistance = 1.0; [self.animator addBehavior:resistanceBehavior];
就控制每次插入产生的距离而言,这是 (a) 您使用的
pushDirection
向量的大小的组合; (b) 您在UIDynamicItemBehavior
中应用于您的项目的阻力
; (c) 您要移动的元素的大小; (d) 您在UIDynamicItemBehavior
中应用于项目的density
。最好尝试使用这些变量,直到您达到单次插入所需的距离。另一方面,如果您想“随着时间的推移加速
UIView
”,那么您可以应用而不是
。通过持续施加力,它将继续在UIPushBehaviorModeInstantaneous
>UIPushBehaviorModeContinuouspushDirection
中加速,直到UIPushBehavior
从UIDynamicAnimator
中移除。
关于ios - 使用 UIPushBehavior 加速 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21499749/