Как я могу добавить свертывающуюся панель поиска под моим navigationItem.titleView программно в iOS 9? - PullRequest
0 голосов
/ 03 июля 2019

Я хочу реализовать свернутое представление под моим 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() должен отображаться, когда пользователь прокручивает вниз, и сворачиваться, когда пользователь прокручивает вверх.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...