在启用分页的情况下,将UICollectionViewCells水平居中可以通过以下步骤实现(Swift语言):
isPagingEnabled
属性为true
来实现:collectionView.isPagingEnabled = truecollectionView(_:layout:sizeForItemAt:)
中,设置每个UICollectionViewCell的大小。确保每个cell的宽度小于或等于UICollectionView的宽度。collectionView(_:layout:insetForSectionAt:)
中,设置section的内边距。将左右内边距设置为相等的值,以实现水平居中效果。例如:func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
let totalCellWidth = cellWidth * numberOfItemsInSection
let totalSpacingWidth = minimumInteritemSpacing * (numberOfItemsInSection - 1)
let leftInset = (collectionViewWidth - CGFloat(totalCellWidth + totalSpacingWidth)) / 2
let rightInset = leftInset
return UIEdgeInsets(top: 0, left: leftInset, bottom: 0, right: rightInset)
}其中,cellWidth
为每个UICollectionViewCell的宽度,numberOfItemsInSection
为section中的cell数量,minimumInteritemSpacing
为cell之间的最小间距,collectionViewWidth
为UICollectionView的宽度。collectionView(_:layout:minimumLineSpacingForSectionAt:)
中,设置cell之间的最小行间距为0,以确保cell水平紧密排列:func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 0
}通过以上步骤,可以在启用分页的情况下将UICollectionViewCells水平居中。
领取专属 10元无门槛券
手把手带您无忧上云