2012-09-27 2 views
0

장치의 인터페이스 방향을 확인하는 올바른 방법은 무엇입니까? 상태 표시 줄 방향이나 현재 활성보기 컨트롤러의 방향 속성을 확인해야합니까?인터페이스 방향을 확인하는 올바른 방법

또한 기기 방향이 위로 향하게하고 아래로 향하게하는 것이 유용한 시나리오를 설명 할 수 있습니까?

[[UIApplication sharedApplication] statusBarOrientation] 

우리는 우리의 앱의 몇 가지에 있고, 어떤 문제를 일으킬 듯하지 않았습니다 : 코드 입력으로 방향과 방법 밖에 있으면

답변

1

당신은 사용자가 인터페이스를 다음보고 어떤 방법으로 알아 보는 경우 인터페이스 방향을 사용하십시오. 나는 두 가지 방법이 모두 좋다고 생각합니다.

물리적 장치의 위치를 ​​확인하려면 장치 방향을 사용하십시오.

인터페이스 방향이 장치 방향과 다르기 때문에 ("장치의 인터페이스 방향"과 같은 것은 없음) 유의하십시오.

장치 방향은 평면/아래로 내려갈 수 있습니다 (인터페이스는 세로/위/아래/가로/오른쪽 만 가능). 장치가 회전되었지만 인터페이스가 상수로 설정된 경우 장치 방향이 다를 수도 있습니다. 플러스 방향의 방향이 반전됩니다. 예 : 장치 landsapeRight == 인터페이스 landscapeLeft.

페이스 업/다운이 유용한 지 잘 모르겠습니다.당신이 실제 방법을 필요로 그냥 경우

, 당신은 사용하여 뷰 컨트롤러에서 인터페이스의 방향을 확인할 수 있습니다이 :

이 (상태 표시 줄 확인)를 사용하여
UIInterfaceOrientation orientation = self.interfaceOrientation; 

또는 응용 프로그램의 모든 클래스에서

UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 

은 다음과 같이 장치의 방향을 가져 오기 :

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; 
1

, 우리는 사용 : D 또한

, UIInterfaceOrientationPortraitUIInterfaceOrientationPortraitUpsideDown 사이에 많은 차이가, 홈 버튼이 화면 방향을 기준으로하는 경우를 제외하고

일부 개발자 (거꾸로가 ... 거꾸로 음 ...입니다)되지 않습니다를 지원하지 않기로 선택하십시오.모드는 기기를 위에있는 홈 버튼과 함께 붙들기가 어색하기 만하지만, 원한다면 구현하고 지원하도록 선택할 수 있습니다 (모든 앱에서 수행).

여기에 각각의 가능한이 값 및 설명에 대한 자세한 정보입니다 :

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplication_Class/Reference/Reference.html#//apple_ref/c/tdef/UIInterfaceOrientation

편집 :

는 아이폰 OS 6 어떻게 UIViewControllers 작업에 몇 가지 변화, 그러나, 유의하시기 바랍니다 , shouldAutorotateToInterfaceOrientation은 (는) 지원이 중단되었습니다.

여기 How to force a UIViewController to Portrait orientation in iOS 6

가있는 UIViewController에 또한 애플의 워드 프로세서의 자세한 정보 제공 :

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/UIViewController/shouldAutorotateToInterfaceOrientation을이 게시물을 참조

1

당신은 노호 C를 사용할 수 있습니다 ode ..

이 정보가 도움이 될 수 있습니다.

if (UIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation)) 
    {     
     // Orientation is   Portrait   
  }    
    if (UIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)) 
    {       
    // Orientation is Landscape         
  } 
관련 문제