因此,人們在這個特定事件中遇到的大多數問題是在發生動畫時觸發scrollViewDidScroll
。我的情況正好相反。我覺得scrollViewDidScroll
不應該在我的情況下被解僱。UITableView scrollViewDidScroll動畫
讓我進一步解釋。
我在scrollViewDidScroll中設置動畫效果,直到我將UITableView移動到UIView類中時,它才能正常工作。
- (void) scrollViewDidScroll:(UIScrollView *)scrollView {
// Animation code here.
NSLog(@"scrollViewDidScroll");
}
- (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSLog(@"scrollViewDidEndDecelerating");
NSArray *indexPaths = [_myTableView indexPathsForVisibleRows];
[_myTableView scrollToRowAtIndexPath:[indexPaths objectAtIndex:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
這是什麼提供的是一個平滑滾動的經驗,彈回先前的錶行。由於scrollToRowAtIndexPath
,控制檯可以驗證scrollViewDidScroll
事件正在觸發。
控制檯:
2014-03-31 22:21:43.346 Project[45843:a0b] scrollViewDidScroll
2014-03-31 22:21:43.379 Project[45843:a0b] scrollViewDidScroll
2014-03-31 22:21:43.429 Project[45843:a0b] scrollViewDidScroll
2014-03-31 22:21:43.462 Project[45843:a0b] scrollViewDidScroll
2014-03-31 22:21:43.479 Project[45843:a0b] scrollViewDidEndDecelerating
2014-03-31 22:21:43.496 Project[45843:a0b] scrollViewDidScroll
2014-03-31 22:21:43.513 Project[45843:a0b] scrollViewDidScroll
2014-03-31 22:21:43.529 Project[45843:a0b] scrollViewDidScroll
走上問題:
1.如何確保該事件scrollViewDidScroll
只是由於用戶交互火災,而不是從代碼自動化?
2.是否有另一種方法可以提供與scrollToRowAtIndexPath
相同的功能,而不會觸發scrollViewDidScroll
?
按我的知識,你不能沒有委託方法滾動被調用。你可以做的一件事是通過以編程方式滾動,你可以設置一個標誌並在委託方法中使用它。如果以編程方式滾動重置標誌。我希望這會幫助你.. –