2014-01-25 3 views
-1

appdelegate에 applicationWillResignActiveview.paused = YES;을 추가했습니다.iOS SpriteKit 방향이 세로 인 경우 게임이 일시 중지됩니다.

그러나 오리엔테이션이 세로 일 때이 일시 중지를 어떻게 호출합니까? 버튼 클릭과 방향 모두가 세로로 표시되고 버튼 터치로 다시 시작됩니다.

또한 view.paused = NO;을 내 applicationDidBecomeActive에 추가했습니다.

답변

1
- (void)viewDidLayout { 
    [super viewDidLayout]; 
    if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation)) { 
     view.paused = YES;  
    } 
} 

viewDidLayout은 뷰에서 모든 하위 뷰를 레이아웃해야 할 때마다 호출되는 메서드입니다. 이것은 뷰의 초기 하중뿐만 아니라 방향이 바뀔 때마다 발생합니다. 레이아웃을 필요로 할 때 뷰를 설정할 때와 같이 다른 인스턴스에서 호출 할 수도 있습니다 (이 모든 것이 무엇인지 완전히 확신하지는 못합니다).

UIDeviceOrientationIsPortrait()은 방향이 세로인지 아닌지에 따라 YES 또는 NO을 반환하는 매크로입니다. UIDeviceOrientationIsLandscape()이라는 유사한 매크로가 있습니다.

관련 문제