2011-08-04 3 views
2

UIViewController 내에서 사용되는 사용자 정의 UIView가 있습니다. 사용자 정의보기에는 사용자 정의/프로그램 레이아웃이 필요합니다. 내가 현재하고있는 것은 "viewDidAppear"컨트롤러 내에서 "layoutThisView"라는 장소에 넣은 사용자 정의 뷰 메서드를 호출하는 것입니다. 이것은 정상적으로 작동하는 것 같습니다.subview 레이아웃 또는 layoutSubviews/layoutIfNeeded의 사용자 정의보기에서 사용자 정의 메서드

질문 -이 접근 방식 대신 UIView layoutSubviews/layoutIfNeeded 메서드를 사용해야합니까? 이것이 도움이 될 수 있습니까?

답변

4

layoutSubviews을 사용하는 것이 좋습니다. Cocoa Touch는 크기 조정, 방향 변경 등 어떤 이유로 든보기가 필요할 때마다이 메시지를 자동으로 보냅니다. 일반적으로 가능한 한 프레임 워크를 사용하십시오.

주의 사항 : UIScrollView 스크롤을 사용하면 포함 된보기에서 layoutSubviews이 호출 될 수 있으므로 특정 유형의 레이아웃을 수행하기 전에보기 경계가 실제로 변경되었는지 확인해야 할 수 있습니다. 나는 코멘트 작성자가 그 사실을 명확하게 밝혀 주길 기원합니다. - 제가 테스트 해본 결과가 아니며, 내가 테스트 해본 결과가 아닙니다.

+0

그래서 사용자 지정 UIView에서 layoutSubview 메서드를 구현하고 부모 UIControllerView가이 메서드를 호출 할 때 자동으로 알 수 있습니까? – Greg

+0

예, 정확하게는 창과 뷰 계층에 의해 부추겨 졌다고 생각합니다. –