Во-первых: если вы используете раскадровку, убедитесь, что вы правильно добавили ограничения представления коллекции в ее супер-представление.
Второе: добавьте ограничения ячейки представления коллекции.
Третье: из инспектора размеров раскадровки , измените оценочный размер представления коллекции на none.
Четвертый: Добавьте UICollectionViewDelegateFlowLayout в ваш контроллер представления
Пятый: Добавьте следующий код:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if indexPath.section == 0 {
return CGSize(width: (collectionView.frame.size.width - 10)/2,
height: (collectionView.frame.size.height - 10)/2) // your desired height
}
return CGSize(width: (collectionView.frame.size.width - 10),
height: (collectionView.frame.size.height - 10)/2)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5)
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
return 0.0
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
return 5
}