Как изменить размер ячеек в виде коллекции в зависимости от размера экрана устройства? - PullRequest
0 голосов
/ 15 мая 2018

Я работаю в Swift и хочу, чтобы мои клетки выглядели примерно так же, как на этой картинке на iPhone 8 плюс enter image description here

Но когда я загружаю его на iPad, размер ячеек не подстраивается под размер экрана. Это выглядит так: enter image description here

Кто-нибудь знает, как я могу сделать это в моем CollectionViewController?

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

Попробуйте это.

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let yourWidth = (collectionView.bounds.width) / 10.0
    let yourHeight = yourWidth

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

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsetsMake(0, 0, 0, 0)
}

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

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
    return 0
}
0 голосов
/ 15 мая 2018

В UICollectionViewDelegateFlowLayout есть метод делегата

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {


    let collectionViewCellSize = collectionView.frame.size.width / 10 // to show 10 cells in a row

    return CGSize(width: collectionViewCellSize, height: collectionViewCellSize)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsetsMake(0, 0, 0, 0)
}

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

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