2012-07-25 3 views
3

내 응용 프로그램에서 scrollViewDidScroll 대리자를 사용하고 있습니다.scrollViewDidScroll 대리자가 자동으로 호출됩니다.

그러나 많은 경우 스크롤을 시작하기는하지만이 대리자가 호출되어 많은 문제가 발생합니다. 특정 스크롤 뷰의 contentSize가 설정되어있는 경우에도이 대표단 즉 scrollViewDidScroll이 호출됩니다.

이 대리인이 호출되는 다른 시나리오는 무엇입니까? 이것을 제어하는 ​​단계는 무엇입니까?

처리 할 매개 변수를 설정할 수 있습니까?

답변

1

오리엔테이션이 변경되면 scrollViewDidScroll도 호출됩니다. 이것은 here에서 알게되었습니다. 이것이 제가 직면 한 문제였습니다. 그리고 지금 내 문제는 this 게시물로 해결되었습니다.

+1

마술 링크 대신 일부 코드는 어떨까요? –

4

relevant

scrollViewDidScroll은 : 때마다 스크롤 경계 변경 호출됩니다. 이것은 스크롤하는 동안뿐만 아니라 이 시작될 때 호출된다는 것을 의미합니다. 대신 scrollViewWillBeginDragging :을 사용해 볼 수 있습니다.

2

뷰를로드하고 조정할 때 scrollDidScroll이 자동으로 실행되는 것을 방지하기 위해 모든 뷰가 viewDidLayoutSubviews를 사용하여로드 될 때까지 내 UIScrollView 대리자를 추가하기를 기다렸습니다. 그것은 나를 위해 잘 작동하고 있습니다.

-(void)viewDidLayoutSubviews { 
    // add table view delegate after the views have been laid out to prevent scrollViewDidScroll 
    // from firing automaticly when the view is adjusted on load, which makes the tab bar disappear 
    self.tableView.delegate = self; 
}