Итак, я пытаюсь выяснить, как изменить размер ячеек представления коллекции. Итак, у меня есть ViewController, и я перетащил collectionView внутри ViewController. Я не использую файл XIB, я использую прототип ячейки. Теперь я не могу понять, как самостоятельно измерить ячейку. Это не так просто, как представление таблицы. Я попробовал следующее, что нашел.
if let layout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
layout.estimatedItemSize = CGSize(width: view.frame.width, height: 100)
layout.estimatedItemSize = UICollectionViewFlowLayout.automaticSize
}
Затем я нашел еще одну, которая создает пустышку, которая выглядит примерно так. Это приводит к сбою моего приложения.
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let frame = CGRect(x: 0, y: 0, width: view.frame.width, height: 50)
let dummyCell = CommentCell(frame: frame)
let comment = comments[indexPath.item]
print(comment.text)
dummyCell.comment = comment
dummyCell.layoutIfNeeded()
let targetSize = CGSize(width: view.frame.width, height: 1000)
let estimateSize = dummyCell.systemLayoutSizeFitting(targetSize)
let height = max(45 + 8 + 8, estimateSize.height)
return CGSize(width: view.frame.width, height: height)
}
Так что мне нужен контроллер представления коллекции вместо контроллера представления. Как бы я мог самостоятельно изменять размер ячеек без использования collectionViewController или nib-файла? Спасибо