gpt4 book ai didi

ios - 在 App 重新进入时恢复 UIView 动画?

转载 作者:行者123 更新时间:2023-11-28 22:50:27 25 4
gpt4 key购买 nike

我的应用程序的主视图 Controller 中有 2 个 UIImageView。它们总是通过 UIView 动画进行动画处理。我想要实现的是当用户单击主页按钮时,暂停 UIView 动画,当用户返回应用程序时,恢复动画。

因此,为了暂停,我从我的应用程序委托(delegate)调用一个方法到我的 ViewController 以在 applicationWillResignActive 调用中暂停。

为了恢复,我也从应用程序委托(delegate)调用一个方法到我的 ViewController 以在 applicationDidBecomeActive 方法中恢复。

这是我用来暂停或恢复动画的代码:

-(void)pauseLayer:(CALayer*)layer {
CFTimeInterval paused_time = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0;
layer.timeOffset = paused_time;
}

-(void)resumeLayer:(CALayer*)layer {
CFTimeInterval paused_time = [layer timeOffset];
layer.speed = 1.0f;
layer.timeOffset = 0.0f;
layer.beginTime = 0.0f;
CFTimeInterval time_since_pause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - paused_time;
layer.beginTime = time_since_pause;
}

- (void)pause:(BOOL)theBool {
if (theBool) {
[self pauseLayer:self.myImageView.layer];
[self pauseLayer:self.myImageViewleft.layer];
} else {
[self resumeLayer:self.myImageView.layer];
[self resumeLayer:self.myImageViewleft.layer];
}
}

所以我对所有内容进行了 NSLogged 并相应地调用了方法,但是当我恢复动画时, ImageView 不会从它们停止的地方恢复并且很可能位于我将它们放置在 XIB 中的位置(关闭屏幕)。

所以当我重新进入我的应用程序时,我的 XIB 会重新加载吗?绝对没有任何东西应该改变那些 UIImageView 的位置,这就是为什么我真的很困惑为什么会发生这种情况。

编辑:我也尝试过以编程方式创建我的图像,但没有遇到同样的问题。如果我在应用程序运行时通过按钮执行暂停和恢复操作,则它会成功运行,似乎问题出在应用程序委托(delegate)方法或其他方面。

如果有人发现问题,请告诉我!

最佳答案

我发现这真的很复杂和棘手,所以现在我将只使用 Cocos2D 并利用 CCDirector 的暂停功能。

编辑:刚试过 CCDirector 的暂停功能,效果很好。一定要走这条路!!!

关于ios - 在 App 重新进入时恢复 UIView 动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12119432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com