SpriteKit SKView不再在iOS 9中的场景之间转换

SpriteKit SKView不再在iOS 9中的场景之间转换,第1张

概述我们有一个在2013年编写和发布的代码库,但在iOS 9中,当presentScene:transition:消息发送到我们的SKView时,应用程序不再在SKScenes之间明显转换. SKScene收到didMoveToView:消息,但场景本身从未在屏幕上显示. 这是我们尝试的: >通过Info.plist禁用Metal >使用[SKTransition transitionWithCIFi 我们有一个在2013年编写和发布的代码库,但在iOS 9中,当presentScene:Transition:消息发送到我们的SKVIEw时,应用程序不再在SKScenes之间明显转换. SKScene收到dIDMovetoVIEw:消息,但场景本身从未在屏幕上显示.

这是我们尝试的:

>通过Info.pList禁用Metal
>使用[SKTransition TransitionWithCIFilter:duration:]而不是预定义的动画
>调整zposition
>切换到常规UIVIEw动画(这使我们的SKNodes消失)
>确保不会多次调用转换方法
>在SKTransition上将pausesOutgoingScene明确设置为YES

上述尝试都没有解决问题.请注意,所有内容都在iOS 8中正常转换

以下是一些不起作用的示例代码:

-(BOol)presentTitle {    if (!TitleSceneLoaded) {        return NO;    }    [skVIEw presentScene:TitleScene Transition:[SKTransition fadeWithDuration:1.0]];    return YES;}

将其更改为此使其再次起作用(没有过渡):

-(BOol)presentTitle {    if (!TitleSceneLoaded) {        return NO;    }    [skVIEw presentScene:TitleScene];    return YES;}

有关如何定位/修复/解决错误的任何建议?

解决方法 iOS9中存在一个错误,它在子视图中显示一个带有转换的场景.

我有同样的问题,在我的控制器中,我能够通过更改vIEwWillLayoutSubvIEws中的以下代码来解决此问题:

[self.subvIEw presentScene:self.scene];        [self.vIEw addSubvIEw:self.subvIEw];

对此:

[((SKVIEw *)self.vIEw) presentScene:self.scene];

如果场景必须保持在子视图方法中,另一种解决方法是使用presentScene而不进行转换,这确实有效.

总结

以上是内存溢出为你收集整理的SpriteKit SKView不再在iOS 9中的场景之间转换全部内容,希望文章能够帮你解决SpriteKit SKView不再在iOS 9中的场景之间转换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1048053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存