31

UICollectionView のコンテナーにパディングを追加しようとしています。全体に10ptのパディングがあるように見せたいです。したがって、画面例では、下に 10pt のパディングがあります。

layout.minimumInteritemSpacing = layout.minimumLineSpacing = 10;

UICollectionViewFlowLayout を使用してセルをレイアウトしています。また、10pt ビューを一番上に追加する「トリック」も試しましたが、コンテンツは別々であるため、ビューをスクロールするようには見えません。ここに画像の説明を入力

4

4 に答える 4

77

次のコードを中に入れてみてくださいviewDidLoad()

collectionView!.contentInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10)

これにより、collectionView のすべての側面にパディングが追加されます。


PS:質問がしばらくここにあることは知っていますが、誰かを助けるかもしれません;)

于 2015-01-17T19:25:03.847 に答える
0

UICollectionViewDelegateFlowLayout探していたものを実現するために、デリゲートのいくつかのメソッドを使用しました。影のあるセルに「パディング」を追加しようとしていました。これは、「フローティング」の効果があり、 の端に触れないようにするためでしたUICollectionView

まず、sizeForItemAt indexPathメソッドを呼び出して、セルにサイズを指定します。

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return CGSize(width: collectionView.bounds.width * 0.80, height: collectionView.bounds.height * 0.98)
}

次に、メソッドを呼び出してinsetForSectionAt section、セルのインセットを設定します。

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsets(top: 20, left: 25, bottom: 20, right: 25)
}
于 2020-07-05T06:41:27.367 に答える
0

構成を使用している場合は、レイアウトの構成で contentInsetsReference を layoutMargins に従うように設定してから、collectionView 自体で layoutMargins を設定します。

var config = UICollectionLayoutListConfiguration(appearance: .insetGrouped)
config.headerMode = .supplementary
        
let layout = UICollectionViewCompositionalLayout.list(using: config)
layout.configuration.contentInsetsReference = .layoutMargins
        
collectionView = UICollectionView(frame: .zero, collectionViewLayout: layout)
        
collectionView.layoutMargins = .init(top: 16, left: 64, bottom: 16, right: 64)
于 2021-10-19T10:06:14.447 に答える