我希望在将内容滚动到顶部时显示导航栏。
我可以隐藏/显示ViewController的导航,但是当我从UIcollectionView类调用时,“setNavigationBarHidden”无效。
我在ViewController上有水平UIcollectionView的垂直UIcollectionView。现在我从垂直方向调用hideBar(),因为我的VC具有水平UIcollectionView:
我调用的方法如下所示: -
FeedCell.swift (垂直UICollectionView)
HomeController.swift (ViewController有两个UICollectionView)
项目层次结构
看起来FeedCell.swift能够访问HomeController但是当我从FeedCell.swift调用时,navigationController?.setNavigationBarHidden无效。
非常感谢,如果有人能就此问题提出建议,谢谢!
答案 0 :(得分:2)
注意:根据问题所有者与我之间的对话做出以下回答。
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)
}