【问题标题】:Animate UIView horizontally using UIDynamicAnimator使用 UIDynamicAnimator 水平动画 UIView
【发布时间】:2014-04-17 05:36:45
【问题描述】:

我已经浏览了文档,我很尴尬地说我很困惑。

情景

我有一个UIView,它的作用类似于 3 个UIButtons 的容器。这个容器最初的边界是{0, 0, 35, 35},里面的每个按钮都有相同的坐标(alpha 0)。在用户执行特定操作时,容器将边界更改为{0, 0, 100, 35},并且按钮分别动画到 x-origin 5、35 和 65,alpha 1,以便它们在调整大小的内部展开容器。我将此称为容器的扩展状态。用户执行相同的操作,将其切换回原始合同状态

目标

我目前正在使用[UIView animateWithDuration:] 块执行此操作,但想使用UIDynamicAnimator 添加有弹性的效果,这样,当切换到展开状态时,容器会通过弹跳调整大小(调整大小有点额外, 并弹回目标边界),按钮也会弹跳(再移动一点,然后弹回目标边界)。

混乱

UIDynamicAnimator,UIDynamicBehavior,UIAttachmentBehavior,UIDynamicItem.....这一切都让我对UIKitDynamic的理解溢出了。我想我应该使用 UISnapBehavior ,但我不知道该怎么做。

【问题讨论】:

    标签: ios uiview uikit-dynamics uidynamicanimator


    【解决方案1】:

    事实证明,不需要使用UIDynamicAnimator 和所有其他动态 动画。我所需要的只是animateWithDuration:delay:usingSpringWithDamping: initialSpringVelocity: options: animations: completion: 类方法。只需使用它代替任何简单的 animateWithDuration: 方法,它就会产生我想要实现的确切行为。

    示例代码:

        [UIView animateWithDuration:0.4
                              delay:0
             usingSpringWithDamping:0.5
              initialSpringVelocity:0.5
                            options:0
                         animations:^{
    
                             //Animation code
    
                         } completion:nil];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-19
      • 1970-01-01
      • 2015-03-09
      相关资源
      最近更新 更多