CollectionView Интервал между ячейками - PullRequest
0 голосов
/ 21 октября 2018

После использования моего старого способа использования collectionView теперь я использую фрагмент кода Apple для collectionView.Проблема в том, что я не могу реализовать свой код для разноса ячеек, и что, например, точно 3 ячейки должны быть в ряд.

Вот мой старый код для разноса ячеек (теперь он не работает, почему?..)

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let width = collectionView.frame.width / 3 - 1 // number of cells in a row. now it's 3 

    return CGSize(width: width, height: width)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
    return 1.0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
    return 1.0
}

Как сделать так, чтобы все выглядело лучше, чем сейчас?Потому что теперь номер сотового телефона зависит от модели iPhoneКроме того, расстояние зависит от модели iPhone.

1 Ответ

0 голосов
/ 22 октября 2018

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

Вот идеальный код для этого:

extension CollectionViewController: UICollectionViewDelegateFlowLayout {


func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let width = collectionView.frame.width / 3 - 1

    return CGSize(width: width, height: width)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
    return 1.0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
    return 1.0
}

Кроме того, напишите collectionView? .Delegate = self в вашей функции viewDidLoad .

...