2013-02-16 2 views

答えて

4

bottomRefreshControlプロパティを実装するUIScrollViewクラス(UICollectionViewクラスの親)のカテゴリはCCBottomRefreshControlです。 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であると言います。たとえば、ロードするデータがさらにある場合は、この1つのセルで最後にセクションを追加します。この追加のセルを適切にフォーマットすると(コレクションビューの途中にある単一のセルなど)、目的のエフェクトを確実に表示できます。

+0

あなたにこの通知を送信するためのサンプルコードがありますか?スクロールして終了するとデータが読み込まれ、すべて正常に動作します。今私はちょうどデータが読み込まれているときに通知が必要です。この通知を行うために余分なセルを読み込むのは簡単ではありません。ありがとう! –

+1

@ S.Birklin - 私は思うよりも簡単だと思います。あなたの 'numberOfRowsForSection'が余分な行を1つ返すようにしてください(あなたが取得する余分なデータがあると仮定します)。それから、 'cellForRowAtIndexPath'は、既存のデータの範囲を超えているかどうかを確認し、そうであれば「読み込み」セルを表示します。簡単に説明するには、https://github.com/robertmryan/UITableView-Bottom-Refreshをご覧ください。 – Rob

+1

これは受け入れられる回答であるべきです –

関連する問題