1.直接經過block動畫
-(void)testInBlock { //經過block監聽 [UIView animateWithDuration:1.0 animations:^{ self.scrollView.contentOffset = CGPointMake(50, 20); } completion:^(BOOL finished) { NSLog(@"滾動完畢"); }]; }
2.代理中的 scrollViewDidEndScrollingAnimation:
方法
觸發條件:使用setContentOffset:animated:或者scrollRectToVisible:animated:方法讓scrollView產生滾動動畫代理
-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { NSLog(@"靜止-[使用setContentOffset:animated:或者scrollRectToVisible:animated:方法讓scrollView產生滾動動畫, 最後靜止]"); }
3.代理中的scrollViewDidEndDecelerating:
方法
觸發條件:人爲拖拽scrollView產生滾動動畫(手鬆開之後因爲慣性會繼續滾動)code
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { NSLog(@"靜止-[手鬆開之後因爲慣性繼續滾動, 最後靜止]"); }
4.代理中的scrollViewDidEndDragging: willDecelerate:
方法
decelerate爲YES : 手鬆開後會因爲慣性繼續滾動;NO : 手鬆開後當即靜止animation
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { if (decelerate) { NSLog(@"手鬆開後因爲慣性繼續滾動"); } else { // 手鬆開後當即靜止 NSLog(@"靜止-[手鬆開後當即靜止]"); [self afterIdle]; } }