2013-08-24 3 views
1

IOS 6 iPad 앱에서 여러 컨테이너보기가있는 컨테이너보기 컨트롤러가 있습니다. 현재 내 앱을 가로로 고정하고 잘 작동하지만 세로도 지원하고 싶습니다. 인터페이스 빌더를 통해 자동 레이아웃 및 제약 조건을 사용하여 모든 것이 설정됩니다. 가능한 경우 일관성, 유지 보수성 등을 위해 하나의 스토리 보드를 유지하고 싶습니다.Xcode IB 스토리 보드 방향 및 컨테이너보기

레이아웃은 다음과 같습니다. 머리글, 왼쪽 메뉴, 두 개의 내용 창 (가로로 나란히 표시) 및 받침대가 있습니다. 내용을 제외한 창 크기 조정. 가로 방향에서 세로 방향으로 회전 할 때 하나의 내용 창을 다른 창 아래로 밀어 내고 싶습니다 (현재는 화면을 blow니다). 둘 다 컨테이너보기의 가장자리에 붙어 있습니다.

HTML5/CSS3에서 쉽게 할 수 있지만 IB에 머물러있어 도움/아이디어가 훌륭합니다!

감사합니다.

편집 :

솔루션 - @Charles A.의 제안에 따라

, 나는 코드 IBOutlets 및 조작 간격/우선 순위에 NSLayoutConstraints를 연결. 내가 정말로 힘들어했던 곳은 Height와 Width 제약을 사용하는 것이었다. 아무 것도 이동하지 않으면 인터페이스 작성기에서 앞/뒤 제약 조건 인 앞뒤 &을 삭제하거나 무시합니다. 나는 결국 모든 높이 & 너비 제약을 포기하고 앞/뒤/위/아래 만 사용했습니다.

이 일이 내가 알아 낸 : 제약이 이정표 (예를 들어 우선 순위 # 750 일)가 그래서 당신은 실용적으로 749에서 750으로 우선 순위를 변경하는 경우, 당신은 얻을 것이다 :

Mutating a priority from required to not on an installed constraint (or vice-versa) is not supported. 

그러나 경우를 당신은 750에서 800으로 바뀌 었습니다.

는 또한 제약을 조작 한 후, 내가 전화를 필요 :

[self updateViewConstraints] 

내가 작동하지 않았다 [부모 updateViewConstraints]을 제안 게시물을 발견했다, 하나는 위했다!

어쨌든이 부분에 많은 사람들이 없기 때문에이 부분에서 다른 사람들에게 도움이되기를 바랍니다.

답변

1

두 개의 콘텐츠보기를 처리하기 위해 레이아웃 제약 조건을 설정하는 방법을 모른 채 질문에 구체적으로 대답하기는 어렵습니다. 그렇게 말하면서, 아마도이 레이아웃과 비슷한 제약을 가짐으로써이 UI에 대해 이야기 할 것입니다. (나는 시각적 인 형식을 사용하여 기술 할 것입니다, 나는 superview가이 경우에 두 개의 컨텐츠 뷰의 부모라고 가정하고 있습니다) : 제약 스토리 보드에 상기와 같이 설치되어 있으면

|-[contentViewOne]-0-[contentViewTwo(==contentViewOne)]-| 

, 만약 IBOutletNSLayoutConstraint*으로 만들 수 있고 (두 콘텐트 뷰의 수평 공간 제약에 0의 정수 값을 지정하는 하나에 연결, 위의 경우). 가로 방향에서 세로 방향으로 애니메이션을 적용 할 때는 음수 너비가 contentViewOne 인 상수 값으로 설정하면됩니다. 이것은 원하는 효과를 가져야합니다. 세로에서 가로로 회전 할 때 분명히 0으로 다시 설정해야합니다.

귀하의 콘텐츠보기가 동일한 너비라고 가정 할 가치가 있습니다.그렇지 않은 경우 잠정적으로 너비를 감싸는 것과 동일한 너비로 설정하기 위해 아래로 밀어 넣는 것에 대한 너비 제한을위한 콘센트를 만들 필요가 있습니다.

autolayout을 사용하여이 레이아웃을 처리 할 수있는 많은 방법이 있습니다. 위에서 설명한 것은 그런 식의 하나입니다. 이미 가지고있는 레이아웃을 감안할 때 의미가 있습니다.