2011-03-16 4 views
1

두 방향 모드 (가로 및 세로)를 관리해야하는 iPad 응용 프로그램을 개발해야합니다. official Apple iOS documentation에 따르면 2 가지 방법으로 진행할 수 있습니다.iPhone 방향 관리 : 가장 효율적인 방법은 무엇입니까?

- 첫 번째 것은 회전 이벤트가 수신 될 때보기 요소를 조정하는 것으로 구성됩니다. 주된 장점은 하나의 ViewController 만있었습니다. 두 번째 것은 각 방향에 대해 특정 ViewController를 표시하는 것입니다. 따라서 2 개의 ViewController가 있습니다.

두 번째 접근 방식은 좋지만, 필자는 필요한 ViewController의 수를 두려워합니다. 또한 ViewController의 "데이터 동기화 논리"는 두 방향 모두에서 사용되도록 복제되거나 ViewController와 격리되어야합니다.

내가 개발해야하는 응용 프로그램에는 많은 "전체 사용자 정의 요소"와 많은 ViewControllers가 포함됩니다.) 읽기위한

감사의; 사람이 조언이나 경험의 피드백이있는 경우

, 정말 감사하겠습니다!

답변

3

두 번째 방법은 두 가지보기 (세로보기 용, 가로보기 용)를 사용하고보기 컨트롤러보기를 willRotateToInterfaceOrientation:으로 바꿔야합니다. 데이터 논리를 복제 할 필요가 없습니다.

어떤 방법을 사용합니까? 나는 말할 것입니다 : 그것은 달려 있습니다.

  • lanscape에와 세로 모드 뷰의 위치/크기 만 다른 경우

    , 나는 첫 번째를 사용 (플러스는 프레임 변화의 좋은 애니메이션거야) 가로 및 세로가 너무 경우
  • 을 다른, 나는 두 번째 것을 선호한다.
+0

맞습니다. 하나의 ViewController 만 있고 각 방향에 대해 2 개의 "전역"보기를 사용할 수 있습니다. – ayorosmage

+0

@alexandrebour 두 번째 방법에 관한 예가 있습니까? 여기에 예제를 줄 수 있다면 정말 좋을 것입니다. 감사. – NightFury

+0

하지만 다른 텍스트 필드에 동일한 콘센트를 설정하는 방법이 없습니다. – Warewolf

1

I 보통보기 제어기 willAutorotateToInterfaceOrientationwillAnimateRotationToInterfaceOrientation 및 방법의 구현과 함께 뷰에서 autoresizing 기술을 활용하여이를 해결한다.

자동 크기 조정 기술을 사용하면 Apple에서 제공하는 표준 UI 요소의 크기를 쉽게 조정할 수 있습니다. UI 요소에 불가능한 레이아웃이 없으면 자동 크기 조정 기술을 적용 할 수 있습니다. 부모보기 컨트롤러에서 속성을 YES으로 설정하고 각 하위보기에 대해 자동 크기 조정 비헤이비어를 선택해야합니다. 예를 들어 뷰를 가운데로 유지하면서 오른쪽으로 크기를 조정하려는 경우 서브 뷰에 autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleRightMargin 마스크를 적용 할 수 있습니다.

자동 응답 기술로 트릭을 수행하지 않는 경우보기 컨트롤러에 - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration을 구현하여 충돌하는 각보기의 크기를 개별적으로 조정해야합니다. "전체 맞춤 요소"가있는 경우이 방법으로 크기를 조정해야합니다.

내 경험에 비추어 볼 때 모든 방향에 대해 하나의보기 컨트롤러와 하나의보기 만 있고 두 가지 기술로 관리하는 것을 선호합니다.

희망이 도움이됩니다.

+0

안녕하세요, Ruben, 감사의 말을 전했습니다.) – ayorosmage

관련 문제