Я пытался реализовать сворачивающийся заголовок UITableView, но сейчас я не получаю дальше. Это моя раскадровка. Я попытался использовать метод делегата scrollViewDidScroll (scrollView: UIScrollView) , но позиция не меняется при прокрутке в табличном представлении, встроенном в контейнер. heightConstraint - это высота представления моего заголовка контейнера.
Здесь - полный исходный код моего класса. Я ценю любую помощь! Сидеть над этой проблемой в течение некоторого времени.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.heightConstraint.constant = self.maxHeaderHeight
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let absoluteTop: CGFloat = 0
let absoluteBottom: CGFloat = scrollView.contentSize.height - scrollView.frame.size.height
let scrollDiff = scrollView.contentOffset.y - self.previousScrollOffset
let isScrollingDown = scrollDiff > 0 && scrollView.contentOffset.y > absoluteTop
let isScrollingUp = scrollDiff < 0 && scrollView.contentOffset.y < absoluteBottom
var newHeight = self.heightConstraint.constant
if isScrollingDown {
newHeight = max(self.minHeaderHeight, self.heightConstraint.constant - abs(scrollDiff))
} else if isScrollingUp {
newHeight = min(self.maxHeaderHeight, self.heightConstraint.constant + abs(scrollDiff))
}
if newHeight != self.heightConstraint.constant {
self.heightConstraint.constant = newHeight
}
self.previousScrollOffset = scrollView.contentOffset.y
}
При прокрутке вверх заголовок контейнера должен исчезнуть / изменить его местоположение.