2010-05-03 4 views
5

UIScrollView (IPhone SDK)를 서브 클래 싱하고 (void) layoutSubviews를 오버라이드합니다. 방법. scrollView가 스크롤 될 때마다이 메서드가 호출되는 것을 확인했습니다.UIScrollView는 스크롤 할 때마다 layoutSubviews()를 호출하여

올바른 동작입니까, 아니면 코드에 실수가 있습니까? 기본 동작 인 경우 성능 저하가 아닌가? 감사합니다

, 하인리히

+0

왜 UIScrollView를 서브 클래 싱합니까? 하위 뷰를 추가하면 어떨까요? –

+1

하위 뷰를 추가 할 수도 있지만 그 점은 중요하지 않습니다. – Erik

답변

10

그것은 올바른 동작이며이 당신의 파단의 사용자 지정 레이아웃을 얻기 위해 사용되어야한다. 나는 그것을 여러 번 사용했으며 수없이 많은 항목을 추가하여 성능 문제가 발생하지 않았습니다.

그 주제에 documentation에서 컷 아웃 : 다른 뷰에 대한

서브 클래스도 할 수 있습니다 컨테이너. 이 경우 보기를 만들려면 지정된 초기화자인 initWithFrame :을 무시하십시오. 드로잉 전에 을 프로그래밍 방식으로 하위 뷰의 레이아웃을 적용하려면 setNeedsLayout을 뷰에 보냅니다. 그런 다음 layoutIfNeeded가 호출 될 때 표시하기 전에 layoutSubviews 메소드가 호출됩니다. 서브 클래스는 layoutSubviews를 오버라이드하여 하위 뷰의 맞춤 배열을 수행해야합니다.

+0

내가보기에, 그것은 ScrollView의 예상되는 동작이다. 감사! – Erik

+0

이 답변이 도움이 되었다면 올바른 것으로 표시 할 수 있습니다. P. 감사! – texmex5

관련 문제