【发布时间】:2014-10-15 10:59:18
【问题描述】:
我正在使用故事板创建导航栏。
我的要求是隐藏状态栏并增加导航栏的高度。当我隐藏状态栏时,导航栏停留在顶部,高度为 44 像素。我需要一个导航栏高度为 64 像素(44 像素+状态栏高度)。有没有办法做到这一点?
带状态栏
没有状态栏
【问题讨论】:
-
您好,请查看我编辑的答案。它工作正常。
标签: ios xcode swift uinavigationbar
我正在使用故事板创建导航栏。
我的要求是隐藏状态栏并增加导航栏的高度。当我隐藏状态栏时,导航栏停留在顶部,高度为 44 像素。我需要一个导航栏高度为 64 像素(44 像素+状态栏高度)。有没有办法做到这一点?
带状态栏
没有状态栏
【问题讨论】:
标签: ios xcode swift uinavigationbar
首先,您可以按照以下步骤隐藏您的statusBar:
首先,将此代码放入viewWillAppear:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
其次,设置您的info.plist 文件,如下图所示:
接下来,您可以创建一个UINavigationBar 的Category,并在其中设置navigaionBar 的高度。
Objective-c
在.h文件中
@interface UINavigationBar (Custom)
- (CGSize)sizeThatFits:(CGSize)size ;
在.m文件中
@implementation UINavigationBar (Custom)
- (CGSize)sizeThatFits:(CGSize)size {
CGFloat width = [UIScreen mainScreen].bounds.size.width;
CGSize newSize = CGSizeMake(width, 100);
return newSize;
}
斯威夫特
extension UINavigationBar {
public override func sizeThatFits(size: CGSize) -> CGSize {
let width = UIScreen.mainScreen().bounds.width
let newSize = CGSize(width: width, height: 64)
return newSize
}
}
【讨论】: