【问题标题】:Table view in UIViewController doesn't get hidesBarsOnSwipe functionalityUIViewController 中的表格视图没有获得 hidesBarsOnSwipe 功能
【发布时间】:2017-03-11 00:04:55
【问题描述】:

我有一个表视图作为常规 UIViewController 的第一个子视图。我尝试将导航控制器的barHideOnSwipeGestureRecognizer 手势识别器添加到我的视图和表格视图中,但没有骰子。在下面的 sn-p 中,blah: 永远不会被调用。

[self.navigationController setHidesBarsOnSwipe:YES];
[self.tableView addGestureRecognizer:self.navigationController.barHideOnSwipeGestureRecognizer];
[self.navigationController.barHideOnSwipeGestureRecognizer addTarget:self action:@selector(blah:)];

我觉得barHideOnSwipeGestureRecognizer 是在不使用顶级滚动视图控制器(集合或表格)时利用这一好功能的方法,但我不知道具体如何。

【问题讨论】:

  • 滚动表格视图时是否要隐藏导航栏?对吧?
  • 是的,正是@Lion - 问题是除非表格视图被精确地固定到顶级视图的尺寸,否则它不起作用。

标签: ios objective-c uiscrollview uinavigationcontroller uikit


【解决方案1】:

如果你想在滑动时隐藏navigationbar,这意味着当你向上滚动tableview(向下)然后

 self.navigationController.hidesBarsOnSwipe = YES;

足以实现这一点。它将隐藏navigationbar 并在tap 上再次显示它。确保您已为tableview 设置了适当的约束。你的约束应该是top,bottom,leading and trailing,常量为0nearest neighbor

【讨论】:

  • 这听起来很疯狂,但确实有效。我的表格视图上方有一个视图,因此约束不直接指向顶部和底部布局指南。不幸的是,虽然它隐藏了,但它仍然没有再次出现。我要再挖一些,但感谢您的帮助
  • 这个答案修复了隐藏中永远不会出现的部分:stackoverflow.com/a/28899115/822164
  • 是的,正如我所说,这取决于您的限制!
猜你喜欢
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 2014-12-04
  • 2016-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多