我想用我自己的视图替换我的应用程序中的UIStatusBar。
我假设我需要隐藏状态栏 - 这是对的吗?
隐藏状态栏的问题是导航栏向上移动以占据其原始位置。如何添加我的视图并将所有内容移回20 px?
假设我不必删除状态栏,而是可以用我的视图覆盖它,那么我就有了背景颜色的问题。这会在视图之间发生变化,因此我需要屏蔽现有的状态栏文本 - 我该怎么做?
感谢您的帮助。
答案 0 :(得分:1)
第一步是隐藏状态栏。在iOS 7中,您可以通过添加prefersStatusBarHidden
function
来执行此操作,如下所示:
- (BOOL)prefersStatusBarHidden {
return YES;
}
这将隐藏状态栏。
要解决您提到的移动问题,您需要将viewController
的状态栏样式设置为none
(在界面编辑器中)。
首先选择左侧面板中的View Controller
:
转到Xcode右侧的属性检查器,并将Status Bar
设置为none
:
就是这样,现在您可以使用自己的内容在屏幕顶部添加自己的视图:)
答案 1 :(得分:1)
使用self.view的框架进行一些调整,你的方法是正确的。
将以下方法添加到viewController,
-(void)viewWillLayoutSubviews{
[super viewWillLayoutSubviews];
self.view.frame =CGRectMake(0, 20, 320, [UIScreen mainScreen].bounds.size.height);
}
上面的方法将视图向下移动20个像素。
答案 2 :(得分:0)
要在iOS7中完全隐藏状态栏,请在Info.plist中将“查看基于控制器的状态栏外观”设置为NO,并在[[UIApplication sharedApplication] setStatusBarHidden:YES];
中设置application:didFinishLaunchingWithOptions
答案 3 :(得分:0)
我认为您正在使用自动布局。因此,为了做到这一点,只需将所有视图放在另一个视图中,并在delta y中为ios6 / 7放置20px。并且不要忘记遵循Audun Kjelstrup的步骤。希望它能解决你的问题。