我有一个CABasicAnimation,想在延迟后启动它。在UIKit中,我可以指定延迟。CAMediaTiming协议有一个timeOffset属性,但我看不到效果。我的下一次尝试是使用GCD来延迟它,但感觉有点过头了。
发布于 2013-02-28 00:21:56
您不应该使用[CAMediaTiming beginTime]属性(reference)吗?
请参见自定义Core Animation Programming Guide中动画的计时。
CABasicAnimation *animation;
animation.beginTime = CACurrentMediaTime() + 0.3; //0.3 seconds delay发布于 2016-11-16 08:23:46
在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() + myDelayhttps://stackoverflow.com/questions/15116712
复制相似问题