Проблема в том, что если вы звоните viewForSupplementaryElementOfKind
, вы должны вернуть представление. И во избежание проблем просмотр должен быть исключен из коллекции viewview (его нужно сначала зарегистрировать).
func collectionView(_ collectionView: UICollectionView,
viewForSupplementaryElementOfKind kind: String,
at indexPath: IndexPath) -> UICollectionReusableView {
return collectionView
.dequeueReusableSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader,
withReuseIdentifier: "",
for: indexPath)
}
Итак, вместо этого вы можете добавить Bool
к вашему коллекционному представлению. Нечто подобное showHeader
, которое вы можете установить из своего V C и изменить размер заголовка в соответствии с ним (настройка (0, 0), когда showHeader == false
Однако я бы предложил, если вы хотите чтобы сохранить ваш коллекционный вид в качестве собственного делегата и источника данных (я не знаю ваш вариант использования, но я не думаю, что в большинстве случаев это хорошая идея), создайте его подкласс, чтобы вы получили
class FeedCollectionView: UICollectionView, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
// Does not configure any header
}
class HeaderFeedCollectionView: UICollectionView, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
// Implements that method
}