gpt4 book ai didi

ios - 如何防止状态栏与 UINavigationController 上设置的 hidesBarsOnSwipe 内容重叠?

转载 作者:IT王子 更新时间:2023-10-29 07:43:57 26 4
gpt4 key购买 nike

我正在尝试使用 iOS 8 中添加的新功能 - 在用户滚动表格 View 时隐藏导航栏(类似于移动版 Safari 所做的)。我在 UITableViewControllerviewDidAppear 方法中将 UINavigationController 的属性 hidesBarsOnSwipe 设置为 YES >:

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if([self.navigationController respondsToSelector:@selector(hidesBarsOnSwipe)]) {
self.navigationController.hidesBarsOnSwipe = YES;
}
}

ScrollView 时导航栏隐藏。到目前为止,一切都很好。但是状态栏仍然可见,我的 TableView 内容通过它显示出来,看起来很难看:

enter image description here

我尝试将 edgesForExtendedLayout 设置为 UIEdgeRectNone 或调整表格 View 的 contentInset,但没有帮助。是否有任何其他解决方案来隐藏状态栏和导航栏,或者使其不透明?

最佳答案

其实做起来很简单。您只需要将导航 isNavigationBarHidden 属性与状态栏相关联即可。

objective-C

- (BOOL)prefersStatusBarHidden {
return self.navigationController.isNavigationBarHidden;
}

swift <= 2.3

override func prefersStatusBarHidden() -> Bool {
return navigationController?.navigationBarHidden ?? false
}

swift 3.0

override var prefersStatusBarHidden: Bool {
return navigationController?.isNavigationBarHidden ?? false
}

并确保您的应用程序 .plist 文件中有“View controller-based status bar appearance”=“YES”。

关于ios - 如何防止状态栏与 UINavigationController 上设置的 hidesBarsOnSwipe 内容重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25870382/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com