hidesBarsOnSwipe 不起作用
hidesBarsOnSwipe doesn't work
具有以下结构:
UIViewController
(VC) 顶部有一些 UIViews
(views)屏幕的一半和 UITableView
(tableView) 在屏幕的下半部分。在 VC 的 视图中,所有这些都处于同一层级。
VC 由 UINavigationController
管理。
自动布局已关闭。使用自动调整蒙版。
dataSource
和 delegate
方法已设置并且工作正常。
我想实现的:
向上滚动时隐藏导航栏,向下滚动后显示。
我做了什么:
由于我的项目只支持iOS8+,设置:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.navigationController.hidesBarsOnSwipe = YES;
}
应该没问题。
我有:
- 在视图上上下滑动分别隐藏和显示导航栏。
- 滚动 tableView 没有意义。
花了一些时间,发现调整 tableView 的大小以使其与 vc 的视图相匹配可以解决问题。
编辑:
文档中是否提到 table 视图只能全屏显示?
发现有趣的事情:即使您没有将 hidesBarsOnTap
设置为 YES
并尝试点击导航区域(即当它在滑动后仍然隐藏时)- 导航之后会显示栏。如果您在该区域有任何 UI 元素,那将非常烦人。
具有以下结构:
UIViewController
(VC) 顶部有一些 UIViews
(views)屏幕的一半和 UITableView
(tableView) 在屏幕的下半部分。在 VC 的 视图中,所有这些都处于同一层级。
VC 由 UINavigationController
管理。
自动布局已关闭。使用自动调整蒙版。
dataSource
和 delegate
方法已设置并且工作正常。
我想实现的:
向上滚动时隐藏导航栏,向下滚动后显示。
我做了什么:
由于我的项目只支持iOS8+,设置:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.navigationController.hidesBarsOnSwipe = YES;
}
应该没问题。
我有:
- 在视图上上下滑动分别隐藏和显示导航栏。
- 滚动 tableView 没有意义。
花了一些时间,发现调整 tableView 的大小以使其与 vc 的视图相匹配可以解决问题。
编辑:
文档中是否提到 table 视图只能全屏显示?
发现有趣的事情:即使您没有将
hidesBarsOnTap
设置为YES
并尝试点击导航区域(即当它在滑动后仍然隐藏时)- 导航之后会显示栏。如果您在该区域有任何 UI 元素,那将非常烦人。