Swift: ячейка collectionView - PullRequest
       32

Swift: ячейка collectionView

0 голосов
/ 01 июля 2018

Я создаю collectionView И у меня есть 3 клетки. Я хочу, чтобы мои клетки выглядели так для всех экранов на всех устройствах:

enter image description here

Но у меня есть этот результат для iPad.

enter image description here

Как это исправить?

Обновление

Я добавляю collectionView в UIViewController. У меня есть эти ограничения для collectionView:

enter image description here

Определение размеров моих клеток:

enter image description here

код:

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 Ответ

0 голосов
/ 02 июля 2018

Вам необходимо адаптивно изменить размер ячейки, иначе размер не будет работать для всех размеров экрана.

У вас есть функция, где вы возвращаете размер ячейки:

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 можно заменить любым контейнером, в который вы хотите поместить ячейки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...