在使用UIScrollView和它的子類UITableView時,有時需要在不同操作狀態(tài)下,做不同的響應(yīng)。
如何截獲這些狀態(tài),如正在滾動,滾動停止等,使用UIScrollViewDelegate_Protocol。
@interface SampleClass: UITableViewController<UIScrollViewDelegate> {
...
}
...
@end
@implement SampleClass
...
#pragma mark -
#pragma mark UIScrollViewDelegate
// 觸摸屏幕來滾動畫面還是其他的方法使得畫面滾動,皆觸發(fā)該函數(shù)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
NSLog(@"Scrolling...");
}
// 觸摸屏幕并拖拽畫面,再松開,最后停止時,觸發(fā)該函數(shù)
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
NSLog(@"scrollViewDidEndDragging - End of Scrolling.");
}
// 滾動停止時,觸發(fā)該函數(shù)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
NSLog(@"scrollViewDidEndDecelerating - End of Scrolling.");
}
// 調(diào)用以下函數(shù),來自動滾動到想要的位置,此過程中設(shè)置有動畫效果,停止時,觸發(fā)該函數(shù)
// UIScrollView的setContentOffset:animated:
// UIScrollView的scrollRectToVisible:animated:
// UITableView的scrollToRowAtIndexPath:atScrollPosition:animated:
// UITableView的selectRowAtIndexPath:animated:scrollPosition:
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { NSLog(@"scrollViewDidEndScrollingAnimation - End of Scrolling.");}@end