我试图创建一个非常简单的时钟。当我应用CGAffineTransformRotate时,它看起来很棒,但是在30-31秒,手就会发疯。
以下是我用来制作动画的代码:
lengthInSeconds += 1
let angle = CGFloat(6.degreesToRadians * Double(lengthInSeconds))
var transform = CGAffineTransformMakeTranslation(0.0, (clockFace.frame.width/4))
secondsHand.layer.anchorPoint = CGPointMake(0.5, 1.0)
transform = CGAffineTransformRotate(transform, angle)
let spring = CASpringAnimation(keyPath: "transform.rotation")
spring.damping = 2.0//3.0
spring.duration = 0.4
spring.mass = 0.1
spring.initialVelocity = 0.0
secondsHand.layer.addAnimation(spring, forKey: "rotation")
secondsHand.transform = transform
任何人都知道为什么它会像这样笨拙地旋转?只是添加,它发生在所有传球,所以在30秒,1分30,2分30等。