Как я могу увеличить высоту своей камеры. Также я увеличиваю высоту ячейки из раскадровки, но это не работает. Примечание. (Только я хочу увеличить высоту ячеек "Что нового")
Код:-
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if let flowLayout = collectionview.collectionViewLayout as? UICollectionViewFlowLayout {
let horizontalSpacing = flowLayout.scrollDirection == .vertical ? flowLayout.minimumInteritemSpacing : flowLayout.minimumLineSpacing
let cellWidth = (view.frame.width - max(0, numberOfCellsPerRow - 1)*horizontalSpacing)/numberOfCellsPerRow
flowLayout.itemSize = CGSize(width: cellWidth, height: cellWidth)
}
return CGSize(width: (self.view.frame.width - 8) / 3.0 , height: (self.view.frame.width - 8) / 3.0)
}
это одно представление коллекции или три представления коллекции?
@ MilanNosáľ на этой странице представлены три коллекции





sizeForItemAt вызывается для каждого предмета в вашей коллекции. Этот код:
if let flowLayout = collectionview.collectionViewLayout as? UICollectionViewFlowLayout {
let horizontalSpacing = flowLayout.scrollDirection == .vertical ? flowLayout.minimumInteritemSpacing : flowLayout.minimumLineSpacing
let cellWidth = (view.frame.width - max(0, numberOfCellsPerRow - 1)*horizontalSpacing)/numberOfCellsPerRow
flowLayout.itemSize = CGSize(width: cellWidth, height: cellWidth)
}
Похоже, он принадлежит к viewDidLoad или еще где-нибудь, где его вызывали бы только один раз. Более того, если я не ошибаюсь, настройка flowLayout.itemSize используется, когда все элементы имеют одинаковый размер - поэтому ее нельзя комбинировать с реализацией sizeForItemAt (другими словами, я бы удалил ее совсем.
Вот что применяется в итоге:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: (self.view.frame.width - 8) / 3.0 , height: (self.view.frame.width - 8) / 3.0)
}
Итак, чтобы изменить высоту ячеек в данном collectionView, просто измените высоту в возвращенном CGSize, например, на collectionView.frame.height, чтобы соответствовать высоте collectionView:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: (self.view.frame.width - 8) / 3.0 , height: collectionView.frame.height)
}
Убедитесь, что вы использовали
UICollectionViewDelegateFlowLayoutвместе с именем класса.