1. ホーム
  2. ios

[解決済み] UICollectionViewのセルを水平方向にセンタリングする方法は?

2022-04-27 02:54:05

質問

UICollectionViewのセルを水平方向にセンタリングする方法について、いろいろ調べてみたのですが、コード例が見つかりませんでした。

最初のセルがこのようになるのではなく X00 このようにしたいのです。 0X0 .これを実現する方法はあるのでしょうか?

EDIT

を、欲しいものを可視化する。

CollectionViewに要素が1つしかないときは、バージョンBのように表示されるようにする必要があります。複数の要素を得たとき、それはバージョンAのようでなければなりませんが、より多くの要素があります。

今のところ、要素が1つしかないときはバージョンAのように見えるのですが、どうすればBのように見えるようになるのでしょうか?

ありがとうございました。

解決方法は?

中央揃えにすることだけが目的であれば、ライブラリを使用するのは良いアイデアではありません。

この単純な計算は、collectionViewLayout関数の中で行うのがよいでしょう。

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets {

    let totalCellWidth = CellWidth * CellCount
    let totalSpacingWidth = CellSpacing * (CellCount - 1)

    let leftInset = (collectionViewWidth - CGFloat(totalCellWidth + totalSpacingWidth)) / 2
    let rightInset = leftInset

    return UIEdgeInsets(top: 0, left: leftInset, bottom: 0, right: rightInset)
}