Swift: заголовок UICollectionView исчезает при прокрутке - PullRequest
0 голосов
/ 26 апреля 2019

это мой первый пост на 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

...