6

コレクションのサブビューに追加することでUIRefreshControlUICollectionView(またはUIScrollViewそのことについては任意に)追加できます。

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(handleRefresh:) forControlEvents:UIControlEventValueChanged];
[self.collectionView addSubview:refreshControl];

コレクション ビューのレイアウトにUICollectionViewScrollDirectionHorizontal.

更新コントロールを左に配置するようにオーバーライドしようとlayoutSubviewsしましたが、この方法ではスクロールの進行状況を追跡できません。水平レイアウトで動作するようにだますことはできますか?

4

2 に答える 2

7

既存のソリューションが見つからなかったためODRefreshControl、水平レイアウトのサポートを拡張しました。

ここに画像の説明を入力

MonoTouch (C#) でのソリューションが必要だったので、ODRefreshControl のソース移植から始めて、水平レイアウトで動作するようにパッチを適用しました。

C# の完全なソース コードはここにあります。Objective C に移植するのは簡単なはずです。
ここで行ったのは、ユーティリティ関数といくつかの条件をあちこちに追加したことだけです。

于 2012-12-12T04:51:37.173 に答える
1

UIScrollViewDelegate メソッドを実装することでこれを実現できます

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
     CGPoint offset = scrollView.contentOffset;
     CGRect bounds = scrollView.bounds;
     CGSize size = scrollView.contentSize;
     UIEdgeInsets inset = scrollView.contentInset;
     float y = offset.x + bounds.size.width - inset.right;
     float h = size.width;


    float reload_distance = 75; //distance for which you want to load more
    if(y > h + reload_distance) {
       // write your code getting the more data
       NSLog(@"load more rows");

    }
}
于 2014-04-23T06:14:22.260 に答える