【发布时间】:2016-03-08 02:40:04
【问题描述】:
当应用返回前台时,我在重新启动动画时遇到问题。我检查了这个solution,但它对我不起作用。
在我的 App Delegate 中,我正在取消应用退出时的动画
func applicationWillResignActive(application: UIApplication) {
let rootVC = window?.rootViewController as! ViewController
rootVC.boardImage.layer.removeAllAnimations()
}
当应用进入前台时,我会向 View Controller 发布通知
func applicationWillEnterForeground(application: UIApplication) {
NSNotificationCenter.defaultCenter().postNotificationName("didEnterForeground", object: nil)
}
视图控制器有一个调用该方法的观察者,但动画没有重新启动。
调用方法:
func playAnimation(notification: AnyObject) {
gameLogic.boardFlash(boardImage)
}
boardFlash 动画:
func boardFlash(board: UIImageView) {
let options:UIViewAnimationOptions = [.Autoreverse, .Repeat]
UIView.animateWithDuration(0.3, delay: 1.0, options: [options], animations: {
board.alpha = 0.0
}, completion: nil)
}
我检查了所有东西都被调用了,但是动画没有运行。任何帮助将不胜感激。谢谢!
【问题讨论】:
-
在调用动画方法之前,您是否将板子的 alpha 重置回 1.0?
-
是的。当视图最初加载时,它会运行相同的动画。那个很好用。
-
对不起,我的评论不是很清楚,我的意思是,当你第一次创建视图时,你试图动画它的 alpha 为 1,然后你第一次动画它 o 零,动画第一次运行后,你有没有把板子的 alpha 重新设置回一个?
-
我没有看到您在选项中有自动反转功能!我的错,对不起
-
@BlakeLockley 不用担心。是的,它有一个 autoReverse
标签: ios swift uiviewanimation