Swift: ячейка collectionView
Я создаю collectionView
И у меня есть 3 клетки. Я хочу, чтобы мои клетки выглядели так для всех экранов на всех устройствах:
Но у меня есть этот результат для iPad.
Как это исправить?
Обновить
я добавить collectionView
в UIViewController
, У меня есть эти ограничения для collectionView
:
Определение размеров моих клеток:
код:
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 4
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 3
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let itemsPerRow: CGFloat = 3
let itemWidth = (collectionView.bounds.width / itemsPerRow)
let itemHeight = itemWidth * 1.5
return CGSize(width: itemWidth, height: itemHeight)
}
1 ответ
Решение
Вам нужно адаптивно изменить размер ячейки, иначе размер не будет работать для всех размеров экрана.
У вас есть функция, где вы возвращаете размер ячейки:
return CGSize(width: 182, height: 275)
Вместо этого сделайте его адаптивным, как это:
return CGSize(width: self.view.frame.width / 3, height: self.view.frame.height)
Или, чтобы иметь промежуток между ними, создайте смещение:
let offset = 10
let width = self.view.frame.width - offset * 4 // 4 gaps
let height = self.view.frame.height - offset * 2 // 2 gaps
return CGSize(width: width / 3, height: height) // Divide into equally-sized cells
Конечно, self.view
может быть заменен любым контейнером, в который вы хотите поместить ячейки.