UIScrollView停止滾動代理

weixin_34146805發表於2017-12-07

Tip: 專案中需要用到當表格停止滾動的時候出來某些事件,沒有一個方法是滿足條件的。必須是下面四個方法同時用才OK。

這四個方法每次只會執行一個,不會重複

如果你用方法讓表格滾動到某一個cell的話,這個情況沒測試。

#pragma mark - 慣性停止滾動的方法  --- 下面四個方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
   [self beginVideoAction];
}

#pragma mark - 手指離開螢幕的方法(不管有沒有慣性都執行)
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
   if (!decelerate) { // 沒有慣性
       [self beginVideoAction];
   }
}

// 自動滾到螢幕上面的時候
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView {
   [self beginVideoAction];
}

/**
統一的重新整理頁面的方法 -- 各種情況的重新整理
*/
- (void)refreshCollectionAction {
// 不同的需求,有時候需要保證當前頁面已經載入完成了。
   [self.collectionView reloadData];
   [self beginVideoAction];
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
   // 正在滾動的方法,肯定在停止滾動的方法前面執行。放心。
   [self stopAllVideoAction];
}

相關文章