Objective c 切换应用程序时删除图层动画
(iOS 5.0) 我在视图的图层上添加了一个CAKeyframeAnimation,重复次数无限(光标闪烁)。但是,当切换应用程序并返回时,动画将从层中移除(或者可能替换整个层,我不确定) 我尝试在viewDidLoad和ViewWillDisplay上重新添加它们,但在切换应用程序时两者都不会被调用。我确实发现UIApplicationLegate中有一个applicationWillEnterForeground:方法。我打算用这个,但我有两个问题:Objective c 切换应用程序时删除图层动画,objective-c,core-animation,Objective C,Core Animation,(iOS 5.0) 我在视图的图层上添加了一个CAKeyframeAnimation,重复次数无限(光标闪烁)。但是,当切换应用程序并返回时,动画将从层中移除(或者可能替换整个层,我不确定) 我尝试在viewDidLoad和ViewWillDisplay上重新添加它们,但在切换应用程序时两者都不会被调用。我确实发现UIApplicationLegate中有一个applicationWillEnterForeground:方法。我打算用这个,但我有两个问题: 是否存在触发动画或层卸载的任何其他情
- 是否存在触发动画或层卸载的任何其他情况?有没有更合适的活动可以听
- 响应这些事件(例如使用目标行动)的最佳实践是什么(在设计模式意义上)
CALayer
您需要在收到applicationWillResignActive
回调时删除它们。如果需要,您可以检查presentationLayer
以获取当前渲染的或尽可能接近的屏幕属性
然后,当您的应用程序按照applicationIDbecomeactive
回调再次激活时,重新添加动画
由于多种原因,您的应用程序可能会从活动状态变为非活动状态,例如,接到电话、短信、警报、用户按下主页按钮等
请看我对这个问题的回答,其中我介绍了恢复CAAnimation
的一些问题:
当切换应用程序或视图控制器时,系统将让层上的动画停止(完成),因此您可以将
removedOnCompletion
设置为NO
(默认值为YES
),它将工作。谢谢。对于任何感兴趣的人,我决定将此事件从应用程序委托传达给需要使用NSNotificationCenter重新添加动画的控制器。