导航栏位于隐藏状态栏下方

发布于 2024-12-29 20:35:45 字数 619 浏览 1 评论 0原文

来自 TableView,我正在创建一个 MKMapView。我想要更多的屏幕空间,所以我隐藏状态栏并将导航栏设置为半透明。

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.translucent = NO;

不幸的是,导航栏位于隐藏状态栏下方(见图)。

在此处输入图像描述

我已经发现这可能会有所帮助,因为人们可以在主事件循环:

[self performSelector:@selector(setNavigationController:YES) withObject:nil afterDelay:0.1];

但这到目前为止还不起作用。有什么提示吗?

提前致谢。

coming from a TableView, I am creating an MKMapView. I want to have more screen real estate, so I hide the status bar und set the navigation bar to transluscent.

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationController.navigationBar.translucent = NO;

Unfortunaltely the navigation bar is positioned below the hidden status bar (see picture).

enter image description here

I already found out that this might help, since one can perform kind of a reload of the bar in the main event loop:

[self performSelector:@selector(setNavigationController:YES) withObject:nil afterDelay:0.1];

But this doesn't work so far. Any hint?

Thanks in advance.

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

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

发布评论

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

评论(2

最偏执的依靠 2025-01-05 20:35:45

好的,我找到了该怎么做:

[self performSelector:@selector(setNavigationController:NO) withObject:nil afterDelay:0.1];
[self performSelector:@selector(setNavigationController:YES) withObject:nil afterDelay:0.1];

这会再次关闭和打开导航栏,这会强制它在正确的位置重绘。

Okay, I found out what to do:

[self performSelector:@selector(setNavigationController:NO) withObject:nil afterDelay:0.1];
[self performSelector:@selector(setNavigationController:YES) withObject:nil afterDelay:0.1];

This switches the navigation bar off and on again, which forces it to redraw in the correct position.

树深时见影 2025-01-05 20:35:45

我在 iOS 6 中使用这个:

self.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = NO;

I use this in iOS 6:

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