이모저모/UIKit
UICollectionViewFlowLayout에 아이템간 간격을 주는 이유
ARpple
2023. 7. 31. 20:16
아이템간 간격을 주지 않은 경우
아이템간 간격을 준 경우
private func setCollectionLayouts(){
let layout = UICollectionViewFlowLayout()
let spacing:CGFloat = 20; let groupItemsCount = 2;
let cellWidth: Int = (Int(UIScreen.main.bounds.width) -
Int(spacing) * (groupItemsCount + 1)) / groupItemsCount
guard cellWidth > 0 else { fatalError("이건 아니지") }
layout.itemSize = .init(width: cellWidth,height: cellWidth)
layout.sectionInset = .init(top: spacing, left: spacing,
bottom: spacing, right: spacing)
// 그룹간의 간격
layout.minimumLineSpacing = spacing
// 아이템간의 간격
layout.minimumInteritemSpacing = spacing
collectionView.collectionViewLayout = layout
}
💡 이 코드에서 뷰의 너비를 300정도로 잡으면 cellWidth는 대략 11~12pt이다.
이 그룹의 아이템 계수는 9개로 11 * 9 = 99pt 정도의 너비만 사용한다.
결국 모든 아이템을 한 줄에 채우고 자동으로 채우는 너비의 간격이 정해지지 않아서 우측에 남는 공간이 발생하는 것을 볼 수 있다.