当我向上滑动时,我试图让我的导航栏隐藏,当我向下滑动时再次出现。我打印功能工作,但我不知道为什么我的导航栏不隐藏。另外,如何将部件放在顶部,即在滑动时隐藏的图像和徽标。
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)
print("Hide")
}, completion: nil)
} else {
UIView.animate(withDuration: 2.5, delay: 0, options: UIViewAnimationOptions(), animations: {
self.navigationController?.setNavigationBarHidden(false, animated: true)
print("Unhide")
}, completion: nil)
}
}
答案 0 :(得分:0)
您可以尝试以这种方式隐藏导航栏
navigationController?.hidesBarsOnSwipe = true
当您向上滚动时,这将自动隐藏栏,并在向下滚动时显示栏。它还将处理调整大小和动画。
您的代码存在的一个问题是,在您完成拖动之前不会触发scrollViewWillEndDragging
,并且可能会在一次拖动操作中多次触发