2010-02-14 6 views
1

브라우저와 같은 하위 뷰를 스택 할 수있는 해상도 독립적 인 iPhone보기 컨트롤러를 만들려면 어떻게해야합니까?iPhone 응용 프로그램에서의 HTML과 같은 레이아웃

여기는 example입니다. 1 ~ 6 줄의 텍스트를 포함 할 수있는 맨 위에있는 하나의 UILabel. 라벨 바로 아래의 행에 2 개의 UIButtons가 있습니다. 왼쪽 버튼의 제목이 짧거나 길 수 있습니다. 텍스트가 끝나는 오른쪽 세로 위치에 단추를 표시하고 싶습니다. 제목의 길이에 따라 왼쪽 단추의 크기를 조정하고 오른쪽 단추를 사용하여 자동으로 위치를 변경합니다.

즉 콘텐츠 변경시 이러한 종류의 UI에 가장 자연스러운 동작을 원합니다.

Interface Builder 또는 UIKit에 이러한 종류의 동작을 자동으로 구현하도록 지시하는 방법이 있습니까?

답변

1

iPhone에서 Cocoa의 레이아웃 관리자를 사용할 수 없습니다. 유일한 자동 레이아웃 도구는 UIViewautoresizingMask 속성이므로 문제를 해결하기에 충분하지 않습니다. 그러니 스스로 코딩해야합니다.

시작할 위치는보기의 layoutSubviews 메소드를 덮어 쓰는 것입니다. 뷰의 경계가 바뀔 때마다 자동으로 호출됩니다. 일부 컨트롤에는 sizeToFit 메서드를 호출하는 적절한 자동 크기 조정 동작이 있습니다.

0

내가 어떻게 Silverlight handles layout을보고 iOS 용 컨테이너의 유사한 세트를 만들 것입니다. 아직 다른 사람이 한 것처럼 보이지 않으므로 다음 프로젝트에서이 작업을 수행 할 계획입니다.

기본적으로 다른 방법으로 하위 컨트롤을 배치하는 컨테이너 컨트롤이 있습니다. 예를 들어 설정할 수있는 다양한 속성에 따라 하위 컨트롤을 스택하는 StackPanel이 있습니다. 또한 HTML 테이블과 같은 것을 구조화하고자 할 때 사용할 수있는 그리드가 있습니다. 그것들은 합성을 위해 잘 설계되었으므로 다양한 조합의 컨테이너를 사용하여 적은 양의 코드로 광범위한 레이아웃을 얻을 수 있습니다.

관련 문제