hidesBarsOnSwipe 不起作用

hidesBarsOnSwipe doesn't work

具有以下结构:

UIViewController (VC) 顶部有一些 UIViews(views)屏幕的一半和 UITableView (tableView) 在屏幕的下半部分。在 VC 的 视图中,所有这些都处于同一层级。

VCUINavigationController 管理。

自动布局已关闭。使用自动调整蒙版。

dataSourcedelegate 方法已设置并且工作正常。

我想实现的:

向上滚动时隐藏导航栏,向下滚动后显示。

我做了什么:

由于我的项目只支持iOS8+,设置:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    self.navigationController.hidesBarsOnSwipe = YES;
}

应该没问题。

我有:

  1. 在视图上上下滑动分别隐藏和显示导航栏。
  2. 滚动 tableView 没有意义。

花了一些时间,发现调整 tableView 的大小以使其与 vc 的视图相匹配可以解决问题。

编辑:

  1. 文档中是否提到 table 视图只能全屏显示?

  2. 发现有趣的事情:即使您没有将 hidesBarsOnTap 设置为 YES 并尝试点击导航区域(即当它在滑动后仍然隐藏时)- 导航之后会显示栏。如果您在该区域有任何 UI 元素,那将非常烦人。