ios - 使用 UIPushBehavior 加速 UIView

标签 ios objective-c uikit physics-engine

我正在尝试在一段时间/距离内加速 UIView。到目前为止,UIPushBehavior 似乎是连续的,即它不会停止,直到它碰到一个不可移动的对象。有没有办法随着时间的推移加速 UIView ?还是距离?

P.S 我的物理白话不太好,所以请客气哈哈

最佳答案

几个想法:

  1. 如果您想随着时间的推移减慢插入速度,以便单次插入转化为一定的行进距离,您必须 (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。最好尝试使用这些变量,直到您达到单次插入所需的距离。

  2. 另一方面,如果您想“随着时间的推移加速 UIView”,那么您可以应用 而不是 UIPushBehaviorModeInstantaneous >UIPushBehaviorModeContinuous。通过持续施加力,它将继续在 pushDirection 中加速,直到 UIPushBehaviorUIDynamicAnimator 中移除。

关于ios - 使用 UIPushBehavior 加速 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21499749/

相关文章:

ios - UICollectionView 动画,类似于 Google Play 新闻应用

iphone - 如何在纵向模式应用程序中滑入 UIView?

ios - 难道不是应该只每帧调用一次layoutSubviews吗?

ios:Socket.io 中的 Json

ios - 如何在 React Native 中添加 float 工具提示?

ios - Unity项目在Xcode中构建,随机崩溃,我不知道为什么...请帮助

iphone - 以编程方式将 UIImage 比率更改为 iphone 中的 fb 封面

ios - 从嵌入式导航 Controller 推送 viewController 时的奇怪行为

iphone - UIKit SDK 3.0错误

ios - 单击按钮后额外的零