(iOS 5.0)
我将CAKeyframeAnimation添加到视图的图层,并且无限重复计数(光标闪烁)。但是,当切换应用程序并返回时,动画将从图层中删除(或者可能整个图层被替换,我不确定)。
我尝试在viewDidLoad和viewWillAppear上重新添加它们,但在切换应用时都没有调用它们。我确实发现UIApplicationDelegate中有一个applicationWillEnterForeground:方法。我打算用这个,但我有两个问题:
答案 0 :(得分:3)
切换应用或视图控制器时,系统会让图层上的动画停止(完成),因此您可以将/* base rule */
#a, #b, #c {
min-width:200px;
}
/* conditionally shrink */
@media all and (max-width: 768px) {
#a { min-width:0; }
}
@media all and (max-width: 548px) {
#b { min-width:0; }
}
@media all and (max-width: 320px) {
#c { min-width:0; }
}
设置为removedOnCompletion
(默认为NO
),它会起作用。
答案 1 :(得分:2)
当你的应用再次出现在前台时,你必须再次将动画添加到CALayer
。
您需要在收到applicationWillResignActive
回调时将其删除。如果需要,您可以查看presentationLayer
以获取当前呈现的或接近 - 屏幕属性。
然后,当您的应用根据applicationDidBecomeActive
回调再次激活时,请重新添加动画。
您的应用可以出于多种原因从有效状态转为无效状态,例如:接听电话,短信,闹钟,用户按下主页按钮等
看看我对这个问题的回答,其中我将介绍恢复CAAnimation
的一些问题:
Restoring animation where it left off when app resumes from background