iOS UITableView 實現上拉及下拉刷新

jopen 10年前發布 | 78K 次閱讀 iOS開發 移動開發 UITableView

一般說到上拉刷新下拉刷新,很多人可能想到的是一個第三方開源框架EGORefresh,下面說下,如何自己寫代碼實現。

UITableView本身是一個UIScrollView,所以UITableView可以實現UIScrollView的代理方法。上拉和下拉刷新無非是UIScrollView偏移到一定程度調用刷新方法。 實現- (void)scrollViewDidScroll:(UIScrollView*)scrollView代理方法即可。代碼如下:

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

// 假設偏移表格高度的20%進行刷新



if (!_isLoading) { // 判斷是否處于刷新狀態,刷新中就不執行



    // 取內容的高度:

    //    如果內容高度大于UITableView高度,就取TableView高度

    //    如果內容高度小于UITableView高度,就取內容的實際高度

    float height = scrollView.contentSize.height > _tableView.frame.size.height ?_tableView.frame.size.height : scrollView.contentSize.height;



    if ((height - scrollView.contentSize.height + scrollView.contentOffset.y) / height > 0.2) {

        // 調用上拉刷新方法

    }



    if (- scrollView.contentOffset.y / _tableView.frame.size.height > 0.2) {

        // 調用下拉刷新方法

    }

}

}</pre>
具體要實現什么樣的刷新效果就在注釋位置加上,還可以加上動畫效果、菊花進度條之類

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!