我有一个带有SKview的视图控制器(我正在使用spritekit)并且每次我改变手机的方向(从横向单向到另一种方式或反之亦然)它重新加载视图控制器,就好像我刚刚打开了应用程序(viewcontroller是最初的一个)。
有解决方法吗?
我似乎无法找到任何有同样问题的人。
代码:
答案 0 :(得分:2)
您正在viewWillLayoutSubview设置SKView,每次设备旋转时都会调用它(查看框架更改)。
哪个好,因为视图将具有正确的尺寸,但是如果您再次设置视图,则应该放置一些var。例如BOOL sceneSetUp
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];
if(!self.sceneSetUp){
// Configure the view.
SKView * skView = (SKView *)self.view;
//skView.showsFPS = YES;
// Create and configure the scene.
SKScene * startScene = [StartViewController sceneWithSize:skView.bounds.size];
startScene.scaleMode = SKSceneScaleModeAspectFill;
SKScene * scene = [gameViewController sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
// Present the scene.
[skView presentScene:startScene];
//[skView presentScene:scene];
self.sceneSetUp = YES;
}
}