문제

이것은 내가 가진 기본 문제의 예일 뿐이 므로이 상황이 약간 무의미하게 들리더라도 걱정하지 마십시오.)

주로 UinavigationController 인 앱이 두 단계 깊은 앱을 가지고 있다고 가정 해 봅시다. 최상위 레벨은 이미지 파일 이름 목록이있는 테이블이며, 두 번째 레벨에는 탭한 파일 이름의 이미지를 보여주는 uiimageview 만 있습니다.

이와 같은 앱의 경우, 두 번째 레벨의 이미지를 초상화 모드로 고정시키는 동안 최상위 레벨의 테이블을 자동으로 표시 할 수있는 좋은 방법을 알고 있습니까?

지금까지 나는 거의 거기에 도착할 수 있었지만 조경 모드에서 파일 이름을 탭하면 두 번째 레벨 뷰 컨트롤러의 istaUtorotateTointerfaceorientation이 초상화 모드에 대해서만 예를 반환하는 경우에도 이미지가 잘못된 방향으로 볼 수 있습니다.

도움이 되었습니까?

해결책

문제는 자동 회전을 사용하면 전체 UI (내가 믿는 UIWindow 인스턴스 포함)가 회전한다는 것입니다.

이 시점에서 내비게이션 컨트롤러에 밀려난 모든 것이 조경에서 이루어집니다.

따라서 ImageView를 푸시 할 때 바로 이것이 바로 얻는 것입니다.

이것을 작동 시키려면 다음 중 하나가 필요합니다.

  1. 루트보기의 회전을 수동으로 처리합니다 (변환 사용)
  2. 변환을 사용하여 -pi/2로 이미지보기를 풀어주십시오.

어느 쪽이든이 작업을 수행하려면 변환을 수동으로 수행해야합니다.

참고로, 이것은 나쁜 UI 디자인 일 수 있습니다. 사용자로서 이미지가 오른쪽으로 나타날 수 있도록 드릴 다운 할 때 기대할 것입니다. 그러나 이것은 앱의 정확한 컨텍스트를 알지 못합니다.

다른 팁

iPhone OS 2.X에서는이 작업을 수행하는 좋은 방법이 없었지만 3.0에서는 극적으로 개선되었습니다.

2.x에서 shouldAutorotateToInterfaceOrientation: 대표 방법은 순종했습니다 변화 방향으로, 당신은 당신이 설명하는 동작을 얻을 수 있습니다. 다른 뷰 컨트롤러에서 회전하면 새 뷰 컨트롤러가 해당 방향으로의 회전을 지원하지 않더라도 푸시와 팝을 통해 회전합니다.

3.0에서 uinavigationcontroller가 폴링됩니다 shouldAutorotateToInterfaceOrientation: 각 푸시 또는 팝에서 예상되는 방식으로 반환되는 내용을 순종합니다. shouldAutorotateToInterfaceOrientation:, 그것은 논리적 방향을 자동으로 즉시 뒤집고 새로운보기에서 초상화 방향의 올바른 방법을 미끄러집니다.

이것은 3.0에 연결된 (따라서 필요한) 응용 프로그램에서만 작동합니다. 2.X에 연결된 응용 프로그램의 경우 이전 동작을 모방합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top