Как изменить размер UICollectionViewCell на основе экрана устройства - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть UICollectionView с пользовательской ячейкой, однако я пытаюсь наложить ограничения на UICollectionView, поэтому он всегда составляет половину ширины экрана и половину высоты экрана. Одна проблема, с которой я постоянно сталкиваюсь, заключается в том, что, хотя UICollectionView изменяется в зависимости от того, на каком устройстве развернуто приложение, UICollectionViewCells содержат одинаковые размеры в ширину и высоту в пикселях. Это код, который я пытался реализовать, чтобы каждая ячейка имела ту же высоту и ширину, что и CollectionView.

 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let height = collectionView.frame.height
    let width  = collectionView.frame.width
    return CGSize(width: width, height: height)
}

Этот код, однако, не работает, поскольку размер ячеек - это просто значения, указанные в инспекторе размера для UICollectionView.

enter image description here

Я не могу понять, что я делаю не так с моим кодом. Заранее большое спасибо за помощь.

1 Ответ

0 голосов
/ 05 апреля 2020

Проблема в том, что размер ячейки вашей коллекции всегда фиксирован. Таким образом, размер ячейки не регулируется в соответствии с размером экрана. Используйте размер кадра просмотра (удалите значения из инспектора размера)

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return CGSize(width: view.frame.width, height: view.frame.height)
}
...