2011-08-02 1 views
0

나는 많은 TableViewCell 되세요있는 TableView를 가지고 있지만,의 TableView의 말에 나는있는 tableview가 0이 상쇄 할 것입니다 코드를 만들고 싶어, 그래서 이것과 상단tableView 오프셋을 0으로 만드는 방법은 무엇입니까?

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { 
if (scrollView.contentOffset.y <=-30) { 
    [self dosomething]; 
} 
else if(scrollView.contentOffset.y >=1150){ 
    [tableViewA setContentOffset:CGPointZero animated:YES];//this code is called and yet offset doesn't become 0 
} 
} 

그래서 가기있는 tableview 코드, 사용자가 상단으로 튀어 오면 dosomething 함수를 호출하고 하단으로 튀어 오르면 tableViewA가 맨 위에 표시되지만 바닥에는 여전히 있습니다. 내가 틀렸어도 tableView가 바닥에 다시 튀어 오릅니다. 어느 누구도 나에게 단서를 줄 수 있니?

답변

0

당신의 코드를 시도한 결과 tableview가 contentOffset을 (0,0)으로 설정했지만 드래그 애니메이션을 계속 진행합니다. 스크롤 애니메이션 중에 tableview는 애니메이션을 적용하고 동시에 경계를 변경합니다. 범위가 바뀔 때마다 layoutSubviews를 호출 할 수 있습니다. 따라서 contentOffset도 (0,0)으로 설정되었지만 경계 바로 다음에 스크롤 애니메이션을 계속하기 위해 새로운 값으로 설정되었습니다.

어쩌면 당신은 시도 할 수

- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { 
    [self setContentOffset:CGPointZero animated:YES]; 
}