2013-06-03 1 views
0

iPad 앱에서 UITextView는 UINavigationController의 하위보기로서 세로 방향으로 화면의 대부분을 차지하도록 설정됩니다. iPad가 가로로 회전하면 UINavigationController가 화면 크기에 맞게 늘리고 조정되지만 TextView는 동일한 크기를 유지하지만 가운데 위치가되도록 조정됩니다. 여기에 시각적이다 : 그것은 세로 있다는iOS의 특정 방향에 대한보기의 프레임/위치는 어디에서 지정할 수 있습니까?

enter image description here

텍스트 뷰는 같은 ​​크기입니다. 단지 차이점이 센터로 이전되었습니다. 문제는이 작업을 수행하는 방법을 모른다는 것입니다.

첫 번째 문제는 장치를 회전하면 textView가 전체 회색 영역 전체보기를 차지한다는 것입니다. TextView는 스토리 보드의 인터페이스 작성기에 설정되어 있으며 설정이나 표시를하지 않아이 동작을 원했습니다. 그냥 일어난다. 이것은 내가 원하는 것이 아닙니다. textView는 인터페이스 빌더에 설정되어 있으므로 "Autoresize Subviews"만 표시됩니다. 나는이 동작이 "자동 크기 지정"이라고 가정하고 있으므로이 옵션을 선택 취소하면됩니다. 그것이 단지 그것의 subviews에 적용되기 때문에 나는 추정한다. 그래서 나는 UINavigationController로 가서 Navigation Bar의 "Autoresize Subviews"를 선택 해제했다. 아직 아무것도 : 나는 didRotateFromInterfaceOrientation 방법에 텍스트 뷰의 프레임을 재설정하는 경우

enter image description here

유일한 작품의 종류는 없습니다. 물론 이것이 "효과가있다". 그러나 이것은 내가 원하는 것이 아니다. 먼저 장치가 가로 방향으로 회전하면 textView가 여전히 늘어납니다. 회전 애니메이션이 끝날 때까지 textView가 원하는 크기와 위치로 스냅됩니다. 둘째, 앱이 가로로 시작되면 textView가 여전히 늘어납니다. textView 프레임의 재설정은 순환 게재에서만 발생합니다.

요약 : 특정 방향의보기에 프레임을 설정하려면 어떻게해야합니까?

답변

0

IB에서 레이아웃 제약 조건을 설정하여 원하는대로 할 수 있습니다. 세로로 원하는 크기의 텍스트보기를 만듭니다. 중심 x, 중심 y, 수퍼 뷰의 상단 공간 및 폭 제약 조건을 지정합니다. 이러한 모든 제약 조건 (및 더 이상)이있는 경우 회전 할 때 동일한 너비를 유지해야합니다.

+0

고맙습니다. 제약으로 인해 크기 조정 문제가 해결되었습니다. 그들에 대해 거의 알지 못해, 나는 그들을 사용하는 것을 결코 생각하지 않았다. 하나의 다른 질문 : 나는 센터 x와 y를 설정하는 방법을 알아낼 수 없습니다. 제가 말할 수있는 한 센터 제약 조건을 추가 할 수 없습니다. – Joe

+0

@ user2157318, 텍스트보기를 선택한 다음 편집기 -> 정렬로 이동하면 "컨테이너의 수평 중심"및 "컨테이너의 수직 중심"중에서 선택할 수 있습니다. – rdelmar

+0

알겠습니다. 감사합니다. rdelmar. – Joe

관련 문제