2016-10-28 2 views
0

portrait 오리엔테이션에 하나의보기를 표시하고 landscape mode에 완전히 다른보기 (예 : stocks app on iPhone)를 표시해야하는 응용 프로그램을 만들고 있습니다. 예를 들어 내가 날씨 앱을 만든 경우 초상화에서 현재 날씨를 표시하고 가로보기에 해당 날씨의 그래프를 표시하려고합니다. 어떻게하면 이것을 할 수 있겠습니까? 다른 storyboard을 만들고 크기 클래스를 변경해야합니까?다른 방향으로보기 변경하는 방법

+0

가능한 복제본 : http://stackoverflow.com/a/27643160/3400991 –

+0

[스위프트 iOS에서 기기 방향 설정] (http://stackoverflow.com/questions/25651969/setting-device-orientation- in-swift-ios) – Vinodh

답변

1

적응 형 레이아웃은 반드시 그것을자를 필요는 없습니다. 내 응용 프로그램은 비슷한 것을 필요로합니다. 그리고 AutoLayout을 사용하는 iPad에서는 크기 클래스를 사용하는 경우 단서가 없습니다. 수퍼 뷰 너비와 높이를 측정해야합니다.

Apple이 WWDC 2016 ("Making Apps Adaptive, Part 2")에서 한 일을했을 때 나는 매우 기뻤습니다. 이 할 수있는

override func viewWillLayoutSubviews() { 
    super.viewDidLayoutSubviews() 
    if self.bounds.width = self.bounds.height { 
     // view is in landscape mode 
    } else { 
     // view is in portrait mode 
    } 
} 

: 그들은 함께 (가까운 반면, 그것을 100 %를 잘라하지 않습니다 IB) 코드로 떨어졌다. 거기에서 그것은 당신의 필요에 달려 있습니다. 내 요구 사항은 매우 단순 했으므로 일부보기는 가로보기가 아닌 이미지보기 아래가 아닌 오른쪽으로 이동했습니다. Apple의 Stock app은 AutoLayout으로 쉽게 할 수있는 일들을 빨간색으로 설정하는 것처럼 보입니다.

+0

방향이 변경 될 때 화면 주위에서 구속 조건을 변경하거나 객체를 이동하려고하지 않습니다. 기본적으로 뷰를 완전히 변경하는 것은 무엇입니까? 날씨 응용 프로그램을 만들고 있다고 가정 해 봅시다. 세로 방향으로 현재 날씨를 표시하고 가로로 그래프를 표시하려고합니다. 어떻게하면 좋을까요? @dfd – fellowProgrammer

+0

나는 당신을 오해하고 있습니다. 지금 내 눈에는 여전히 같은 개념입니다. "보기를 완전히 변경하는"은 현재보기를 숨기고 숨겨진보기를 "숨김"을 포함합니다.이보기는 하위보기를 움직이거나 두 개의보기 (및 제어기) 사이에서 구분하는 것을 권장하지 않습니다. – dfd

+0

좋아요, 한 번 더 질문합니다. UIView를 사용하여 화면의 크기를 지정하고 (프로그래밍 방식으로) 내 레이블을 넣은 다음 해당보기를 숨기고 다른보기를 표시합니다. @dfd – fellowProgrammer

관련 문제