动画在迅速摇摆

时间:2015-08-12 14:10:08

标签: swift uiviewanimation

我试图快速制作一个摆动的动画,但到目前为止没有运气。 我所拥有的是一个桌子上面的一个鸡蛋,我希望鸡蛋的底部有点粘在桌子上,鸡蛋的顶部慢慢地向左和向右摆动。

到目前为止我已尝试过这个:

    CATransaction.begin()
    CATransaction.setCompletionBlock({
        completion?()
    })
    let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation")
    rotateAnimation.autoreverses = true
    rotateAnimation.repeatCount = Float( loops )
    rotateAnimation.fromValue = CGFloat(-0.1)
    rotateAnimation.toValue = CGFloat(0.1)
    rotateAnimation.duration = 1.0
    animObject.layer.addAnimation(rotateAnimation, forKey: nil)
    CATransaction.commit()

然而,这会使整个鸡蛋旋转,包括它的底端,所以它实际上看起来不像是摆动。

想象一下,手中拿着一支铅笔,然后左右旋转。笔的顶端和底端都向相同的两侧延伸到彼此的相对侧。现在将铅笔的底端放在桌子上,然后左右倾斜。只有顶端改变位置。 这就是我想要实现的目标。

1 个答案:

答案 0 :(得分:1)

试试这个(可能需要略微调整):

egg.layer.anchorPoint = CGPoint(x: 0.5, y: 1.0)

这会将锚点设置在底部中间,所以现在当你旋转时,它会围绕该点旋转,而不是默认的{0.5, 0.5}