iphone - 화면 - 가로 방향을 비활성화하려면 어떻게해야합니까?



아이폰 화면 회전 버그 (4)

iPhone 앱을 만들고 있는데 인물 모드로 전환해야하므로 사용자가 기기를 옆으로 움직이면 자동으로 회전하지 않습니다. 어떻게해야합니까?

https://src-bin.com


Answer #1

Xcode 4 이하

그것을 놓친 사람들을 위해 : 프로젝트 설정 화면을 사용하여 앱 전체에서 방향을 고정 할 수 있습니다 (모든 컨트롤러에서 메서드를 재정의 할 필요 없음).

지원되는 인터페이스 방향을 전환하는 것만 큼 간단합니다. 왼쪽 패널> 앱 타겟> 요약 탭에서 프로젝트를 클릭하여 찾을 수 있습니다.


Answer #2

Xcode 5 이상

  • 왼쪽 사이드 바에있는 Project Navigator에서 프로젝트를 클릭하여 프로젝트 설정을 엽니 다.
  • 일반 탭으로 이동하십시오.
  • 배치 정보 섹션의 장치 방향 아래에서 원하지 않는 옵션의 선택을 해제하십시오.


Answer #3

Swift 3 네비게이션 컨트롤 이있는 경우 이것을 하위 클래스로 만듭니다 (세로 방향 만 해당).

class CustomNavigationViewController: UINavigationController {

  override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return UIInterfaceOrientationMask.portrait
  }

  override var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
    return UIInterfaceOrientation.portrait
  }
}

Answer #4

특정의 View Controller의 방향을 무효로하려면, supportedInterfaceOrientationspreferredInterfaceOrientationForPresentation 오버라이드 (override) 할 필요가 있습니다.

- (NSUInteger) supportedInterfaceOrientations {
    // Return a bitmask of supported orientations. If you need more,
    // use bitwise or (see the commented return).
    return UIInterfaceOrientationMaskPortrait;
    // return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;
}

- (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation {
    // Return the orientation you'd prefer - this is what it launches to. The
    // user can still rotate. You don't have to implement this method, in which
    // case it launches in the current orientation
    return UIInterfaceOrientationPortrait;
}

iOS 6 이전 버전을 타겟팅하는 경우 shouldAutorotateToInterfaceOrientation: 메소드가 필요합니다. '예'를 반환 할 때를 변경하면 해당 방향으로 회전할지 결정합니다. 이렇게하면 일반적인 세로 방향 만 허용됩니다.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 

    // Use this to allow upside down as well
    //return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);
}

shouldAutorotateToInterfaceOrientation: 은 iOS 6.0에서 더 이상 사용되지 않습니다 .





orientation