iOS中导航栏隐藏后,设置状态栏不透明无效

发布于 2022-09-03 08:19:42 字数 612 浏览 28 评论 0

我在开发中遇到这样一个问题

我设置了导航栏隐藏
self.navigationController.navigationBarHidden = YES;
但是此时,出现了如图的问题,状态栏透明,导致用户体验极差。
为什么向上拉的时候,headerView(关注的主播)会卡在状态栏之下,但是cell确能浸入到状态栏之中呢,我设置了状态栏的背景颜色,也无效。
有人遇到过和我一样的问题么?

向上拉时

初始时

向上拉时

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

唠甜嗑 2022-09-10 08:19:42

按照苹果的用户设计原则,开发者不应该在状态栏防止任何视图。所以,这样是正常情况。

最偏执的依靠 2022-09-10 08:19:42

在你的viewController中设置
self.edgesForExtendedLayout = UIRectEdgeNone;//这样可以不让视图延伸到导航栏(状态栏)下面去

纵情客 2022-09-10 08:19:42

你调整一下 UITableView 的位置,UITableView顶着 NavigationBar就行了。
做下拉刷新的时候,位置也会比较合理一些

谁的新欢旧爱 2022-09-10 08:19:42

我这个类是继承UITableViewController的,所以不管设置self.edgesForExtendedLayout = UIRectEdgeNone;或者在最上面加一个自定义的View去遮盖状态栏的背景都是不管用的,因为这个加的view也会一起滑动,所以我解决办法是重构这个类,让这个类继承UIViewController,然后再加TableView和最上面的小View,这样就解决了我的问题,否则继承UITableViewController的话,导航栏hide之后,对状态栏的一切设置都无效,状态栏永远是透明的。

悲欢浪云 2022-09-10 08:19:42

设置一下当前视图控制器:self.automaticallyAdjustsScrollViewInsets=false;
self.tableView=[[UITableView alloc]initWithFrame:CGRectMake(0,20,SCREENW,SCREENH-69) style:UITableViewStylePlain];
就ok

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文