2010-07-09 4 views
0

UIScrollView 하위 클래스 (예 : ProfileScrollView)로 설정된보기 속성이있는 UIViewController 하위 클래스가 있습니다. 이제, 나는 많은 텍스트를 그리고 텍스트 사이에 서브 뷰로 UIButton을 배치하는 drawRect : 메서드를 재정의했습니다. 텍스트 데이터에 따라이 drawRect : 메서드에서 scrollView의 contentSize를 설정합니다. 이제이 뷰를 스크롤하면 버튼이 스크롤되지만 텍스트는 정체 상태를 유지합니다. 이 문제를 도와주세요. 감사합니다UIScrollView 적절하지 않은 스크롤

답변

1

당신의 문제는 당신이 텍스트에 drawRect:을 사용한다는 사실에서 온 것 같아요. 나는 CGRect 인수로 주어진 위치 지정이 절대적이며 scrollView의 내용의 현재 오프셋에 의존하지 않는다고 확신합니다.

하위 뷰 (단추 및 텍스트)를 UIScrollView에 직접 추가 했습니까? 그렇다면 모든 하위 뷰를 포함하는 UIScrollView에 간단한 UIView를 삽입하십시오.

-> UIScrollView 
    -> UIView 
     -> UIButtons 
     -> Text 
     -> ... 

그래서 drawInRect: 절대 위치에있는 UIView를 포함하는 텍스트를 그릴 것,하고있는 UIScrollView는 UIView의을 (결과적으로 모든 내용) 스크롤 것 같은 것을해야한다.

+0

답변 해 주셔서 감사합니다. 나는 이것이 필요한 해결책이라고 생각한다. 하지만 scrollView의 drawRect :를 오버라이드 한 것처럼 텍스트를 스크롤하지 않는 이유는 무엇입니까? – Nishit

+0

시도해 보았습니까? 효과가 있습니까? 내 대답을 게시 한 후 몇 가지 의구심이 있었기 때문에. 하지만 이유는 당신이 텍스트를 절대 위치에 놓는 NSString의 drawInRect 또는 drawAtPoint를 사용하여 텍스트를 그리는 이유라고 생각합니다. UIButton (및 다른 UIView)은 수퍼 뷰에 상대적으로 배치되므로 UIScrollView는 사용자가 스크롤 한 위치에 따라 위치를 변경할 수 있습니다. – Jukurrpa

+0

예, 솔루션이 작동했습니다. 그러나 이전 접근 방식에 관해서는 drawRect 내부에 중단 점을 배치했습니다. 그리고 scrollView를 스크롤 할 때 drawRect :가 호출되지 않았습니다. 즉, 동일한 절대 지점에서 문자열을 반복해서 그리지 않고 일정한보기 (scrollView 아님)로 그려 왔습니다. – Nishit

관련 문제