首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向下滚动以逐渐隐藏菜单栏或视图,然后向上滚动

向下滚动以逐渐隐藏菜单栏或视图,然后向上滚动
EN

Stack Overflow用户
提问于 2018-07-05 10:23:08
回答 2查看 2.2K关注 0票数 0

我想在集合视图的顶部创建一个菜单栏。当用户向下滚动时,菜单栏将逐渐隐藏,而当用户向上滚动时,菜单栏将立即出现。行为类似于导航栏的hidewhenswipe擦除功能。在这个菜单栏上创建这样的行为有什么解决方案吗?谢谢。

屏幕截图

EN

回答 2

Stack Overflow用户

发布于 2018-07-05 12:32:38

  1. 给你的标题视图一个高度约束,如果还没有给出的话。然后连接该约束,例如

@IBOutlet弱var scrollViewDidScroll:在ViewDidLoad()

  • UICollectionView中UIScrollViewDelegate

  • set ViewController = UICollectionViewDelegate是collectionView.delegate = UIScrollView的子类,因此您可以重写ViewDidLoad()

  • UICollectionView的委托方法并使用以下代码

函数scrollViewDidScroll(_ scrollView: UIScrollView) { if scrollView.contentOffset.y > 50 {//希望头视图隐藏view.layoutIfNeeded() headerViewHeightConstraint.constant =0 UIView.animate(withDuration: 0.5,delay: 0,options:.allowUserInteraction,animations:{ self.view.layoutIfNeeded() },completion: nil) }else { //展开header view.layoutIfNeeded() headerViewHeightConstraint.constant = 100 //您的header视图UIView.animate的初始高度(withDuration: 0.5,delay: 0,options:.allowUserInteraction,动画:{ self.view.layoutIfNeeded() },completion: nil) } }

票数 5
EN

Stack Overflow用户

发布于 2018-07-05 10:51:49

我一直在使用HidingNavigationBarManager来做你刚才描述的事情,它非常容易使用。如果您的ViewController中有一个tableView,那么只需将这些代码行添加到您的代码中就可以了。

代码语言:javascript
运行
复制
var hidingNavBarManager: HidingNavigationBarManager?
...
...
override func viewDidLoad() {
    super.viewDidLoad()
    self.hidingNavBarManager = HidingNavigationBarManager(viewController: self, scrollView: tableView)

  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51182622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档