我试图快速制作一个摆动的动画,但到目前为止没有运气。 我所拥有的是一个桌子上面的一个鸡蛋,我希望鸡蛋的底部有点粘在桌子上,鸡蛋的顶部慢慢地向左和向右摆动。
到目前为止我已尝试过这个:
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()
然而,这会使整个鸡蛋旋转,包括它的底端,所以它实际上看起来不像是摆动。
想象一下,手中拿着一支铅笔,然后左右旋转。笔的顶端和底端都向相同的两侧延伸到彼此的相对侧。现在将铅笔的底端放在桌子上,然后左右倾斜。只有顶端改变位置。 这就是我想要实现的目标。
答案 0 :(得分:1)
试试这个(可能需要略微调整):
egg.layer.anchorPoint = CGPoint(x: 0.5, y: 1.0)
这会将锚点设置在底部中间,所以现在当你旋转时,它会围绕该点旋转,而不是默认的{0.5, 0.5}
。