Как выровнять по центру CollectionView Cell? - PullRequest
0 голосов
/ 31 августа 2018

Привет, есть коллекция. Ширина каждой ячейки равна ширине экрана / 3. Значит 3 клетки подряд. Сейчас. Если есть 10 или 11 ячеек, то будет 4 строки. и есть 1 или 2 клетки в последнем ряду. Проблема в том, что я хочу выровнять эти ячейки по центру, не меняя их размера. теперь ячейки выровнены по левому краю.

Примечание. Я хочу добиться этого с помощью раздела (поскольку в коллекционном представлении уже есть несколько разделов). Изображение прикреплено, чего я хочу достичь. enter image description here

1 Ответ

0 голосов
/ 31 августа 2018

Вы можете решить эту проблему, используя несколько разделов. Номер раздела должен быть

numberOfSection = totalItemCount/3 > Int(totalItemCount/3) ? Int(totalItemCount/3) + 1 : Int(totalItemCount/3)

не используйте потолок. Тогда количество предметов в разделе должно быть

numberOfItemInSection = totalItemCount-section*3 < 3 ? totalItemCount-section*3 : 3

Затем реализуйте делегат UICollectionViewDelegateFlowLayout. Где в collectionView(_ collectionView:, layout:, insetForSectionAt:) указан

let minimumInterItemSpacing: CGFloat = 8.0
// minimumInterItemSpacing should be same in the delegate function
let itemCountInSection = collectionView.numberOfItems(inSection: section)
let edgeSpace = (collectionView.bounds.width - ((itemCountInSection*self.itemWidth) + (minimumInterItemSpacing*(itemCountInSection-1)))) / 2
return UIEdgeInsets(top: self.topSpace, left: edgeSpace, bottom: self.bottomSpace, right: edgeSpace)

установить другие методы делегата так, как вам удобно.

...