это мой первый пост на StackOverflow
, и я новичок в Swift.
Я реализую CollapsingToolbarLayout в стиле Android с UICollectionView
и динамически меняю высоту заголовка с помощью пользовательского CollectionViewFlowLayout.
Но когда я прокручиваю вверх, мой заголовок исчезает, и я обнаруживаю, что он исчезает на определенной высоте.
У кого-нибудь есть идеи или с такой же проблемой?
Я пытался добавить headerReferenceSize
или sectionHeaderPinToVisibleBound
к своей пользовательской компоновке, но первая не удалась, а вторая зафиксировала высоту заголовка.
override func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? {
let layoutAttributes = super.layoutAttributesForElements(in: rect)
layoutAttributes?.forEach({ (attribute) in
if attribute.representedElementKind == UICollectionView.elementKindSectionHeader{
guard let collectionView = collectionView else {return}
let contentOffsetY = collectionView.contentOffset.y
let width = collectionView.frame.width
let height = attribute.frame.height - contentOffsetY
let titleHeight = UIScreen.main.bounds.height/10
let testHeight = attribute.frame.height - titleHeight
if contentOffsetY > testHeight {
attribute.frame = CGRect(x: 0, y: contentOffsetY, width: width, height: titleHeight)
headerReferenceSize = CGSize(width: width, height: titleHeight)
} else {
attribute.frame = CGRect(x: 0, y: contentOffsetY, width: width, height: height)
}
}
})
return layoutAttributes
}
Youtube
Выше приведена ссылка на демонстрационный пример вопроса, извините, что я не знаю, как вставить видео в StackOverflow