我有一個SKview(我正在與spritekit)裏面的viewcontroller和每一次我改變手機的方向(從風景一種方式到另一種風景或反之亦然)它重新加載視圖控制器,就好像我剛剛打開了應用程序(視圖控制器是最初的那個)。翻轉iPhone的方向重新加載視圖控制器
有沒有解決它的方法?
我似乎無法找到任何人有同樣的問題。
代碼:
我有一個SKview(我正在與spritekit)裏面的viewcontroller和每一次我改變手機的方向(從風景一種方式到另一種風景或反之亦然)它重新加載視圖控制器,就好像我剛剛打開了應用程序(視圖控制器是最初的那個)。翻轉iPhone的方向重新加載視圖控制器
有沒有解決它的方法?
我似乎無法找到任何人有同樣的問題。
代碼:
您在viewWillLayoutSubview都會調用每一次設備旋轉(圖幅的變化)設置你的SKView。
這是很好的,因爲視圖將具有正確的尺寸,但是您應該放置一些變種以知道是否應該再次設置視圖。例如布爾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;
}
}
在幾乎所有情況下,只需檢查:if(skView.scene == nil){..} – LearnCocos2D
oh duhhhhh。謝謝。我會盡我所能接受 – maxhud
你可以發佈你的視圖控制器代碼和相關的應用程序委託代碼。每次改變方向時都不應該重新加載。 –
@DobroćudniTapir你去 – maxhud