6

私はプロジェクトに取り組んでおり、Webデータからのコレクションビューに多数の画像が表示されています。

WaterFlowLayoutコレクションビューを実装しましたオープンソースのGithubプロジェクト https://github.com/aceisScope/WaterflowView

画像はコレクションビューの画像配列に動的に割り当てられています。

コレクションビューソースの画像数が3以上の場合は、正常に機能しています。

ただし、表示する画像数がコレクションビューに表示されていない画像数よりも少ない場合は、デモプロジェクトでも同じように発生します。

プルして更新するためにもう1つ実装しましたが、ほぼ12枚の画像を1ページに表示できます。画像数がコレクションより13を超える場合、デフォルトのスクロールは正常に機能し、プルして更新できませんが、画像数が少ない場合12を超えると、プルにアクセスしてコレクションビューを更新できません。

numberOfItemsInSectionが3で、numberOfColumnsInFlowLayoutも3の場合、コードが正常に機能するよりも1行完全に完了することを意味します。

 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
    {
        return 3;
    }

#pragma mark- UICollectionViewDatasourceFlowLayout
    - (NSInteger)numberOfColumnsInFlowLayout:(WaterFlowLayout*)flowlayout
    {
        return 3;
    }

ただし、numberOfItemsInSectionが2で、numberOfColumnsInFlowLayoutも3の場合、1行全体が完了していないことを意味し、画像を表示できません。

    - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
    {
        return 2;
    }

#pragma mark- UICollectionViewDatasourceFlowLayout
    - (NSInteger)numberOfColumnsInFlowLayout:(WaterFlowLayout*)flowlayout
    {
        return 3;
    }

また、照合ビューのデフォルトのスクロールがアクティブでない場合でも、プルを更新できるようにするためのトリックを提案できます。

前もって感謝します ...

4

1 に答える 1

4

WaterFlowLayout リポジトリをスキップして、代わりに UICollectionView を使用することを検討してください。

  1. UICollectionView の使用を開始するには、Bryan Hansen によるこの優れたチュートリアルをご覧ください。UICollectionView に慣れることができます。

  2. UICollectionView を使用している場合は、メソッドに数行UICollectionViewControllerのコードを追加するだけで、pull-to-refresh コントロールを追加できます。viewDidLoad

    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    [refreshControl addTarget:self action:@selector(startRefresh:) forControlEvents:UIControlEventValueChanged];
    [self.collectionView addSubview:refreshControl];
    
  3. Pinterest スタイルのウォーターフォール レイアウトを実装するには、この UICollectionViewLayout github リポジトリ、またはそこにある任意の数の他のリポジトリを使用できます: https://github.com/jayslu/JSPintDemo

于 2012-12-20T07:35:41.253 に答える