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];

但这到目前为止还行不通。有什么提示吗?

提前致谢。

4

2 回答 2

1

好的,我知道该怎么做:

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

这会关闭并再次打开导航栏,这会迫使它在正确的位置重绘。

于 2012-01-30T05:47:49.033 回答
0

我在 iOS 6 中使用它:

self.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = NO;
于 2013-04-30T05:54:57.197 回答