Вот что у меня есть:
Представление коллекции с двумя столбцами, каждый из которых расположен на равном расстоянии.
Каждая ячейка загружает SmallCardView.xib.SmallCardView содержит квадратное изображение с текстом ниже.
Проблема:
Я хочу, чтобы ширина представления соответствовала ширине его родительского элемента (ячейки).Это лучше всего иллюстрируется сравнением размеров экрана
![Screen size comparison](https://i.stack.imgur.com/9kI4T.png)
Как вы можете видеть выше, ячейка (фиолетовый контур) имеет размеры правильно на обоих экранах, но SmallCardView остаетсятот же размер
Вот код в моем контроллере представления коллекции:
viewDidLoad -
private let spacing: CGFloat = 20.0
override func viewDidLoad() {
super.viewDidLoad()
let layout = UICollectionViewFlowLayout()
layout.sectionInset = UIEdgeInsets(top: spacing, left: spacing, bottom: spacing, right: spacing)
self.collectionView?.collectionViewLayout = layout
}
sizeForItemAt -
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let numberOfItemsPerRow: CGFloat = 2
let spacingBetweenCells: CGFloat = 20
let totalSpacing = (2 * self.spacing) + ((numberOfItemsPerRow - 1) * spacingBetweenCells) // Amount of total spacing in a row
if let collection = self.collectionView {
let width = (collection.bounds.width - totalSpacing)/numberOfItemsPerRow
return CGSize(width: width, height: width * 1.2)
} else {
return CGSize(width: 0, height: 0)
}
}
Спасибо!