我有一个简单的 UIImageView ( myimageview
) 加载了 NSArray( animationArray
) 的动画图像(在我的ViewController.m)
:
[self.myimageview setAnimationImages:self.animationArray];
[self.myimageview setAnimationDuration:[self durationTime]];
[self.myimageview setAnimationRepeatCount: 1];
[self.myimageview startAnimating];
我知道在哪里使用 stopAnimating 等。但是我有一个奇怪的问题。当屏幕锁定时,我的动画没有任何反应。任何东西都像魅力一样。我解锁屏幕后它继续。
但是,当我的应用程序进入后台模式时,整个动画就会停止(我的动画时长为 2-3 分钟,因此这是不可接受的)。我搜索了一下,发现了这个主题:
它说使用此代码的地方:
UIView *viewBeingAnimated = //your view that is being animated
viewBeingAnimated.frame = [[viewBeingAnimated.layer presentationLayer] frame];
[viewBeingAnimated.layer removeAllAnimations];
//when user unpauses, create new animation from current position.
现在我正在尝试在 AppDelegate.m 中将其实现到我的代码中
// in -(void)applicationDidEnterBackground:
self.viewController.myimageview.frame = [[self.myimageview.frenchPress.layer presentationLayer] frame];
但是我在 XCode 中遇到了这个问题(对于上面的行),我无法继续:
AppDelegate.m:40:47: Receiver type 'CALayer' for instance message is a forward declaration
如果我退出到后台值,我会节省时间:(self.currentDate
仅作为旁注,以防我们需要它)。
如何在不中断的情况下暂停和播放动画?