私のコレクションビューでは、1つのリストと1つのグリッド(2つの列)があります。swif uicollectionviewセル間のスペースとセル間のスペースなし
リストを有効にすると、セルと画面の間にそれぞれ2pxのスペースがあります。
グリッドレイアウトに変更すると、セルと画面の間に小さなスペースしか得られません。私はセルと画面の間に2ピクセルのスペースを追加したいと思います。リストのための
class GridLayout: UICollectionViewFlowLayout {
var numberOfColumns: Int = 3
init(numberOfColumns: Int) {
super.init()
minimumLineSpacing = 1
minimumInteritemSpacing = 1
self.numberOfColumns = numberOfColumns
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override var itemSize: CGSize {
get {
if let collectionView = collectionView {
let itemWidth: CGFloat = (collectionView.frame.width/CGFloat(self.numberOfColumns)) - self.minimumInteritemSpacing
let itemHeight: CGFloat = 260.0
return CGSize(width: itemWidth, height: itemHeight)
}
// Default fallback
return CGSize(width: 100, height: 100)
}
set {
super.itemSize = newValue
}
}
override func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint) -> CGPoint {
return proposedContentOffset
}
}
とコード作品:2つのcolumグリッドの
コードの下
class ListLayout: UICollectionViewFlowLayout {
var itemHeight: CGFloat = 180
init(itemHeight: CGFloat) {
super.init()
minimumLineSpacing = 1
minimumInteritemSpacing = 1
self.itemHeight = itemHeight
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override var itemSize: CGSize {
get {
if let collectionView = collectionView {
//Adding -4 to set a 2px space between cell and screen
let itemWidth: CGFloat = collectionView.frame.width - 4
return CGSize(width: itemWidth, height: self.itemHeight)
}
// Default fallback
return CGSize(width: 100, height: 100)
}
set {
super.itemSize = newValue
}
}
override func targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint) -> CGPoint {
return proposedContentOffset
}
}
コレクションビューでcontentInsetプロパティを設定します。 –