3

UICollectionViewFlowLayoutを含む単一の水平行スライダーを持つように をオーバーロードしました。UIImagesUICollectionViewCell

オーバーロードされた では、 を 0 にUICollectionViewFlowLayout設定して、minimumLineSpacingの間に間隔を空けませんUICollectionViewCells。(デフォルトは 10px)

  • 各セルの幅が同じ場合、0px の間隔が正しく表示されます

  • セルの幅がこれより大きい場合、0px は考慮されなくなり、セル間のデフォルトの 10px が適用されます。

次の方法を実装しようとしましたが、同じ結果です...

- (CGFloat)collectionView:(UICollectionView *)collectionView 
           layout:(UICollectionViewLayout*)collectionViewLayout 
           minimumLineSpacingForSectionAtIndex:(NSInteger)section {
    return 0.0;
}
  • バグですか?
  • UICollectionViewCells幅が異なる0px 間隔を取得する「トリック」は何ですか?
4

1 に答える 1

5
  1. バグですか?いいえ
    これはバグではなく、 のデフォルトの動作ですUICollectionViewFlowLayout。フロー レイアウトは改行レイアウトです。つまり、すべてのセルが直線に沿って配置され、画面上に配置されると想定されます。行がいっぱいになると(新しいアイテムのためのスペースがありません)、行を壊して次の行に進みます。正確な最小ライン間隔を保証しますUICollectionViewFlowLayout。アイテムのサイズが異なる場合、フロー レイアウトは最小行間隔を維持するようにセルを配置します。そのため、線のサイズは大きくなる可能性がありますが、以前に設定した値よりも小さくなることはありません。

    ここに画像の説明を入力

  2. フロー レイアウトでは可能だとは思いません。1 つのカスタム レイアウトを使用する必要があります。これを確認して、間隔をゼロに設定できるかどうかわからない場合は、
    JSPrintDemoを試してみてください

于 2013-05-22T07:14:42.377 に答える