2

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

场景

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

目标

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

混乱

UIDynamicAnimator, UIDynamicBehavior, UIAttachmentBehavior, UIDynamicItem.....所有这些都导致我的理解UIKitDynamic溢出。我想我应该使用UISnapBehavior ,但我不知道该怎么做。

4

1 回答 1

8

As it turns out, using UIDynamicAnimator, and all other dynamic animations was not needed. All I needed was the animateWithDuration:delay:usingSpringWithDamping: initialSpringVelocity: options: animations: completion: class method. Just use it in place of any simple animateWithDuration: method, and it yields the exact behaviour i intended to achieve.

Sample code:

    [UIView animateWithDuration:0.4
                          delay:0
         usingSpringWithDamping:0.5
          initialSpringVelocity:0.5
                        options:0
                     animations:^{

                         //Animation code

                     } completion:nil];
于 2014-05-29T06:01:32.967 回答