Я хочу реализовать свернутое представление под моим navigationItem.titleView
с панелью поиска, которая сворачивается каждый раз, когда пользователь прокручивает вверх / вниз в табличном представлении.Я предполагаю, что мне нужно добавить UIView()
программно и поместить его между моим UITableView()
и navigationItem.titleView, но я столкнулся с некоторыми проблемами с реализацией и ограничением UIView()
.
Было бы неплохо, если бы кто-то мог помочь мне с этим.
Я нашел код ниже, но я не совсем уверен, поможет ли он мне в моем случае.
class VC: UIViewController {
@IBOutlet weak var heightConstraint: NSLayoutConstraint!
var lastContentOffset: CGFloat = 0.0
let maxHeaderHeight: CGFloat = 115.0
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if (scrollView.contentOffset.y >= (scrollView.contentSize.height - scrollView.frame.size.height)) {
//Scrolled to bottom
UIView.animate(withDuration: 0.3) {
self.heightConstraint.constant = 0.0
self.view.layoutIfNeeded()
}
}
else if (scrollView.contentOffset.y < self.lastContentOffset || scrollView.contentOffset.y <= 0) && (self.heightConstraint.constant != self.maxHeaderHeight) {
//Scrolling up, scrolled to top
UIView.animate(withDuration: 0.3) {
self.heightConstraint.constant = self.maxHeaderHeight
self.view.layoutIfNeeded()
}
}
else if (scrollView.contentOffset.y > self.lastContentOffset) && self.heightConstraint.constant != 0.0 {
//Scrolling down
UIView.animate(withDuration: 0.3) {
self.heightConstraint.constant = 0.0
self.view.layoutIfNeeded()
}
}
self.lastContentOffset = scrollView.contentOffset.y
}
}
UIView()
должен отображаться, когда пользователь прокручивает вниз, и сворачиваться, когда пользователь прокручивает вверх.