![](/img/trans.png)
[英]Keyframe animation takes long time to start after UIView animateWithDuration is called
[英]UIView animateWithDuration start over
我有一个简单的问题:),但我想从Stackoverflow社区的优秀程序员中受益。
我在viewDidApp的源代码视图中使用UIView.animateWithDuration通过调用startTheStory()如下所示显示动画开始:
override func viewDidAppear(animated: Bool) {
if !animate {
startTheStory()
}
}
然后,使用定制segue将视图事务与目标视图合并。
我的问题是事务在源视图中重新启动动画时重新开始,因此我尝试通过以下代码停止动画:
override func viewWillDisappear(animated: Bool) {
animate = true
self.view.layer.removeAllAnimations()
}
但这是行不通的。
我也尝试在prepareForSegue()中,但是它不起作用。
任何想法?
谢谢
删除此行self.view.layer.removeAllAnimations()
并添加这些行
[CATransaction begin]
[_backgroundView.layer removeAllAnimations]
[CATransaction commit]
[CATransaction flush]
记得导入QuartzCore/QuartzCore.h
您的动画出演的原因是
if !animate {
startTheStory()
}
总是在viewDidAppear方法中执行,因为每次视图将再次在屏幕上绘制时,“动画”都设置为false。 当调用viewDidAppear时,将viewWillDisappear中的“动画”设置为“真”将再次重置为“假”。 因此,尝试在应用程序委托中保持“ animate” var全局,并设置该值即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.