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