2011-01-23 4 views
2

이것이 작동하지 않는 이유를 잘 모르겠습니다. 누락 된 부분을 찾을 수있게 도와주세요. 페이징을 사용하는 UIScrollView이 있습니다. 튜토리얼을 통해 사이드 스크롤에 사용하고 있습니다. 도청 될 때 튜토리얼 시작 부분으로 사용자를 스크롤해야하는 버튼이 있습니다. 원래 CGRect이 첫 번째 페이지를 나타내야하기 때문에 처음에는 스크롤 할 뷰의 프레임을 rect로 사용하여 시도했습니다. 난 다른 두 가지 시도했는데 CGRects 아무 소용.UIScrollView scrollRectToVisible이 아무 것도하지 않습니다.

- (IBAction) touchedButtonReturnToBeginning:(id)sender { 
    // I've tried several CGRect's, none of which cause the UIScrollView to move. 
    // CGRect beginning = self.containerScrollView.frame 
    // CGRect beginning = self.containerScrollView.bounds; 
    CGRect beginning = CGRectMake(0, 44, 1, 1); 
    [self.containerScrollView scrollRectToVisible:beginning animated:YES]; 
} 

나는 touchedButtonReturnToBeginning 조치를 내 버튼에 연결되어 self.containerScrollView뿐만 아니라 내 xib에 매여 있음을 확인했습니다. 디버거를 사용하여이 메서드를 단계별로 실행 했으므로 호출 된 것을 확인했습니다. 모든 변수가 적절하게 설정되어 있지만 scrollRectToVisible이라고 호출하면 스크롤보기가 아무 것도하지 않습니다.

아이디어가 있으십니까?

+0

버튼을 눌러 스크롤하면 'touchedButtonReturnToBeginning' **이 ** 호출됩니다. 맞습니까? – aqua

+0

예, NSLog를 메서드에 넣었습니다. 디버거를 단계별로 실행했는데 문제가 있음을 알았습니다. –

+0

'UIScrollView'의'contentSize' 속성을 확인 했습니까? 이 문제가 발생하면 일반적으로 스크롤보기에서 유효하지 않은 (예 : {0,0}) 콘텐츠 크기가 발생합니다. – Jay

답변

11

그 이유는 모르겠지만 시도해 보셨습니까? [self.containerScrollView setContentOffset:CGPointZero animated:YES]?

+3

해당 DID가 작동합니다. 왜 도대체 scrollRect 작동하지 않는 이유는 무엇입니까? 그게 이상해. –

+0

정말 이상한;) – user170317

5

scrollRectToVisible을 작동 시키려면 self.containerScrollView.contentSize를 확인하십시오. 충분히 커야합니다 :)

+0

그것은'0 x 0'이었습니다. 이제 프레임과 동일하게 설정했지만 여전히 작동하지 않습니다. –

+0

콘텐츠 크기는 스크롤 프레임보다 커야합니다. 다른 방법으로 scrollRectToVisible은 작동하지 않을뿐만 아니라 스크롤 자체가 아무 것도하지 않습니다. –

+0

자동으로 설정하면 안됩니까? 그리고 그렇지 않다면, 내가 설정해야만하는 공식은 무엇입니까? 콘텐츠 크기와 경계 또는 프레임 간의 상호 작용은 무엇입니까? –

관련 문제