2013-02-16 97 views

回答

4

這裏是一個CCBottomRefreshControl類UIScrollView類(UICollectionView類的父級),它實現bottomRefreshControl屬性。它與iOS 6和7本機刷新控件兼容。

-2

你不行。你根本無法真正自定義UIRefreshControl

9

您不能使用UIRefreshControl來做到這一點,但如果您可以使用更簡單的解決方案,那麼您可以設置收藏視圖,以便在滾動到底部時自動加載更多數據。 (順便提一句,這是一個更爲普遍的用戶界面......拉起來刷新並不常見,但是當你觸及底部時自動檢索更多數據。)

最原始的表現是響應到UIScrollViewDelegate方法,並確定如果你已經滾動到集合視圖的底部(這是本身的UIScrollView的子類):

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height) 
    { 
     if (!self.isLoadingMoreData) 
     { 
      self.loadingMoreData = YES; 

      // proceed with the loading of more data 
     } 
    } 
} 

更妙的是,如果你有更多的數據加載,顯示底部有一個單元格,上面寫着「請稍等,載入更多數據」,或許用UIActivityIndicatorView。例如,如果您有更多要加載的數據,請使用這個單元添加一個部分到最後。如果你正確地設置了這個額外的單元格(例如,一個單獨的單元格通過集合視圖),它肯定會呈現出你正在尋找的效果。

+0

你有給用戶這個通知的示例代碼嗎?我滾動時加載數據結束,一切正常。現在我只需要數據加載時的通知。加載用於執行此通知的額外單元格並不那麼簡單。謝謝! – 2015-05-26 11:14:55

+1

@ S.Birklin - 我認爲這比您懷疑的要容易。只需讓你的'numberOfRowsForSection'返回一行(假設你有額外的數據要獲取)。然後,'cellForRowAtIndexPath'可以看到它是否超出了現有數據的範圍,並顯示「加載」單元格,如果是這樣的話。請參閱https://github.com/robertmryan/UITableView-Bottom-Refresh獲取簡單的插圖。 – Rob 2015-05-26 15:59:39

+1

這應該是被接受的答案 – 2016-01-25 23:54:44