UIColloectionView の下部に UIRefreshControl を追加するにはどうすればよいですか? つまり、上にスクロールする場合 (古いデータなどを表示する場合) はどのように機能するのでしょうか?
3 に答える
それを行うために使用することはできません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 つのセルを含むセクションを最後に追加します。この追加のセルを適切にフォーマットすると (たとえば、コレクション ビュー全体にわたる単一のセル)、探している効果を確実にレンダリングできます。
これは、bottomRefreshControlプロパティを実装する UIScrollView クラス (UICollectionView クラスの親) のCCBottomRefreshControlカテゴリです。iOS 6 と 7 の両方のネイティブ リフレッシュ コントロールと互換性があります。
できません。完全にカスタマイズすることはできませんUIRefreshControl
。