Я хотел реализовать иерархию представлений, подобную следующей, чтобы можно было прокручивать ВСЁ представление:
UIScrollView
Но многие здесь говорят, что лучше использовать заголовок, который идет вместе с представлением коллекции.Я сделал это, но теперь у меня есть новая проблема: когда я прокручиваю представление коллекции, все конфигурации, которые я сделал для ячейки заголовка в функции viewForSupplementaryElementOfKind, дублируются (например: если я программно создаю новое представление в функции viewForSupplementaryElementOfKind,это представление будет продолжать создаваться при прокрутке)
Я понимаю, что это происходит, потому что я снимаю заголовок с помощью dequeueReusableSupplementaryView.Но я пробовал искать в документах Apple, и нет других кодов, которые я мог бы использовать для создания экземпляра представления заголовка без повторного использования.
Есть ли способ создать контроллер представления, как описано выше, без использования UICollectionView?
Я попытался установить количество разделов равным 1, надеясь, что он будет использоваться только ОДИН РАЗ, но он не работает.
Редактировать: Также пытался установить размер заголовка с помощью UICollectionViewDelegateFlowLayouta и используяUICollectionView вместо UIViewController и UICollectionViewDataSource и т. Д.
func collectionView(_ collectionView: UICollectionView,
viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView
{
switch kind {
case UICollectionView.elementKindSectionHeader:
guard
let headerView = collectionView.dequeueReusableSupplementaryView(
ofKind: kind,
withReuseIdentifier: "DiscoverHeader",
for: indexPath) as? DiscoverHeader
else {
fatalError("Invalid view type")
}
// Rotating arrow image
headerView.arrowImg.transform = headerView.arrowImg.transform.rotated(by: CGFloat.pi/0.67)
return headerView
default:
assert(false, "Invalid element type")
}
}