iphone:隐藏视图后重启循环动画,然后重新出现?

时间:2011-01-13 23:19:23

标签: iphone ios animation uiview core-animation

我的应用有一个带有两个不同视图的标签栏。在第一个选项卡上,其视图具有连续循环动画。

当我点击第二个标签,然后回到第一个,动画停止了。我知道我可以在viewWillAppear:方法中再次启动它,但问题比那更大。具体来说,如果应用程序转换为背景状态,动画也将停止,然后移回前景。在这种情况下,在前景转换时不会调用viewWillAppear,因此viewWillAppear技术不会执行任何操作。

处理这种情况的最佳方法是什么?

感谢。

2 个答案:

答案 0 :(得分:4)

为了保持封装,您理所当然地不希望AppDelegate知道哪些视图需要恢复动画。但是您可以拥有包含相应通知的动画寄存器的视图(例如在视图的init方法中)并重新启动动画。

[[NSNotificationCenter defaultCenter] 
   addObserver:self 
      selector:@selector(startAnimation) 
          name:UIApplicationWillEnterForegroundNotification  
        object:nil];

...不要忘记在dealloc方法中取消注册通知中心。

答案 1 :(得分:0)

您可以将动画设置为在AppDelegate的applicationWillEnterForeground方法中继续。如果您在AppDelegate中引用了第一个选项卡的视图控制器,只需从AppDelegate调用视图控制器的viewWillAppear方法。