我要创建:不带导航栏的显示视图,而如果滚动从顶部> = 100高度到底部的距离,则显示导航栏。
从底部滚动时:如果到顶部的距离<= 100高度需要隐藏 我尝试了这个,但是对我没有帮助
func scrollViewWillEndDragging(_ scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if(velocity.y>0) {
UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: {
self.navigationController?.setNavigationBarHidden(true, animated: true)
}, completion: nil)
} else {
UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: {
self.navigationController?.setNavigationBarHidden(false, animated: true)
}, completion: nil)
}
}
答案 0 :(得分:1)
您可以使用scrollViewDidScroll
完成所需的功能。我已经实施并测试了它,并且可以正常工作。
func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("scroll Content : \(scrollView.contentOffset.y)")
if scrollView.contentOffset.y >= 100
{
UIView.animate(withDuration: 2.5, animations: {
self.navigationController?.setNavigationBarHidden(true, animated: true)
})
}
else
{
UIView.animate(withDuration: 2.5, animations: {
self.navigationController?.setNavigationBarHidden(false, animated: true)
})
}
}
在viewDidLoad()中,您可以隐藏导航栏,以便在打开应用程序时隐藏时间导航栏。
希望这会对您有所帮助。