Cha*_* SP 2 iphone cocoa-touch core-animation multitasking
我使用以下代码无限制地动画UIView:
#define DEFAULT_ANIM_SPPED 0.6
#define INFINATE_VALUE 1e100f
[UIView beginAnimations:nil context:nil];
[UIView setAnimationRepeatAutoreverses:YES];
[UIView setAnimationRepeatCount:INFINATE_VALUE];
[UIView setAnimationDuration:DEFAULT_ANIM_SPPED];
CGRect tempFrame=myView.frame;
tempFrame.origin.y -= 30;
myView.frame=tempFrame;
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)
如果我的应用程序转到后台,然后我返回它,那么所有这样的动画现在都停止了.为什么会这样?
Bra*_*son 10
通常,当应用程序执行到后台时,它的执行完全被暂停.即使您的应用程序保持活动状态(用于位置跟踪,VoIP或其他原因),当您的应用程序移至后台状态时,任何绘制到屏幕的内容都将停止:
避免更新您的窗口和视图. 在后台,您的应用程序的窗口和视图不可见,因此您不应尝试更新它们.虽然在后台创建和操作窗口和视图对象不会导致应用程序终止,但是应该推迟此工作,直到应用程序移动到前台.
实际上,如果您尝试在后台绘制OpenGL ES上下文,您的应用程序将立即崩溃:
不要从代码中进行任何OpenGL ES调用.在后台运行时,不得创建EAGLContext对象或发出任何类型的OpenGL ES绘图命令.使用这些调用会立即终止您的应用程序.
通常,建议暂停应用程序移动到后台的任何动画,然后在应用程序位于前台后恢复这些动画.这可以在-applicationDidEnterBackground:和-applicationWillEnterForeground:delegate方法中处理,也可以通过监听UIApplicationDidEnterBackgroundNotification和UIApplicationWillEnterForegroundNotification通知来处理.
| 归档时间: |
|
| 查看次数: |
3381 次 |
| 最近记录: |