CABasicAnimation
があり、遅延後に開始したい。 UIKitでは、遅延を指定できます。 CAMediaTiming
プロトコルにはtimeOffset
プロパティがありますが、効果が見られません。私の次の試みは、GCDを使用してそれを遅らせることですが、やり過ぎのように感じます。
[CAMediaTiming beginTime]
プロパティ( reference )を使用すべきではありませんか?
Core Animation Programming Guide のアニメーションのタイミングのカスタマイズを参照してください。
CABasicAnimation *animation;
animation.beginTime = CACurrentMediaTime() + 0.3; //0.3 seconds delay
In Swift 3.0:
func animateYourView () {
let myDelay = 5.0
let scalePulseAnimation: CABasicAnimation = CABasicAnimation(keyPath: "transform.scale")
scalePulseAnimation.beginTime = CACurrentMediaTime() + myDelay
scalePulseAnimation.duration = 0.5
scalePulseAnimation.repeatCount = 2.0
scalePulseAnimation.autoreverses = true
scalePulseAnimation.fromValue = 1.0
scalePulseAnimation.toValue = 0.5
myView.layer.add(scalePulseAnimation, forKey: "scale")
}
遅延の重要な行は次のとおりです。
scalePulseAnimation.beginTime = CACurrentMediaTime() + myDelay