Установка 2 ячеек представления коллекции на строку (одинаково на всех устройствах) - PullRequest
0 голосов
/ 04 февраля 2019

Я создал контроллер представления коллекции, и я пытаюсь разместить 2 ячейки в строке в двух столбцах.Я получил это так, как я хочу, чтобы он работал на iphone 8, но на других устройствах (плюс, 5 с, Xs макс ...) он все испортил.Вот его изображение на iphone 8:! https://imageshack.com/a/img923/3521/DFwwvc.png

Вот как настроено представление моей коллекции:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

    collectionView.backgroundColor = .clear
    collectionView.contentInset = UIEdgeInsets(top: 10.0,
                                               left: 2.0,
                                               bottom: 10.0,
                                               right: 2.0)

    return nomeItem.count
}//func numberOfItemsInSection
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

    let celula = collectionView.dequeueReusableCell(withReuseIdentifier: "PronafCollectionCell", for: indexPath as IndexPath) as! PronafCollectionCell

    celula.labelNumeroItem.text = String(indexPath.row+1)
    celula.labelTitulo.text = nomeItem[indexPath.row]
    celula.labelDescricao.text = descricaoItem[indexPath.row]

    return celula
}//func cellForItemAt

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    switch (indexPath.row){
    case 0:
        self.performSegue(withIdentifier: "segueDescricao", sender: self)
    case 1:
        self.performSegue(withIdentifier: "segueProponente", sender: self)
    case 2:
        self.performSegue(withIdentifier: "segueResponsavelTecnico", sender: self)
    case 3:
        self.performSegue(withIdentifier: "segueCar", sender: self)
    case 4:
        self.performSegue(withIdentifier: "segueImovel", sender: self)
    case 5:
        self.performSegue(withIdentifier: "segueDesenho", sender: self)
    case 6:
        self.performSegue(withIdentifier: "segueBuscar", sender: self)
    case 7:
        self.performSegue(withIdentifier: "segueResumo", sender: self)
    default:
        break
    }//switch (indexPath.row)
}}

1 Ответ

0 голосов
/ 04 февраля 2019

Вы можете указать ширину и высоту ячеек, делая ее пропорциональной на каждом телефоне: sizeForItemAt из UICollectionViewDelegateFlowLayout

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return CGSize(width: collectionView.frame.width / 2, height: /* your desired height here */)
}

Советы: Вы даже можете сделать этонемного меньше половины экрана, умножая значения следующим образом: (collectionView.frame.width / 2) * 0.98, вы также можете вычесть постоянные значения.

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

Примечание: Количество ячеек в строке рассчитывается на основе количества ячеек, которые соответствуют ширине UICollectionView.Поэтому наличие ячеек с половиной ширины будет соответствовать 2 ячейкам на строку.

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