iOS导航栏和状态栏设置
前言
纯代码设置iOS导航栏和状态栏。效果图👇
导航栏设置(Navigation Bar)
iOS中的导航栏使用UINavigationBar,它继承自UIView。可以通过它控制导航栏显示的内容等等,一个导航栏通常包括:标题和左右侧按钮。
UINavigationBar示意图:
UINavigationBar几个重要属性:
- tintColor: 导航栏左右侧按钮的颜色
- titleTextAttributes: 导航栏标题的属性
- translucent: 导航栏半透明属性,是一个BOOL值,默认为YES(即:默认导航栏是半透明的)
- barTintColor: 导航栏背景色
UINavigationBar内部结构:
导航栏(UINavigationBar)内部可以包含多个UINavigationItem,UINavigationBar的UINavigationItem可以通过它的items属性获得。
UINavigationBar通过类似进栈和出栈的方式压入和弹出UINavigationItem。通常只需一个UINavigationItem。
- 向UINavigationBar中插入UINavigationItem:
- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated - 弹出最上方的一个UINavigationItem:
- (UINavigationItem *)popNavigationItemAnimated:(BOOL)animated - 获取最上方的UINavigationItem: 通过UINavigationBar的topItem属性
UINavigationItem:
UINavigationItem管理着显示在UINavigationBar中的内容。一个UINavigationItem通常包含:标题和左右侧的按钮。
重要属性
- title: 标题
- leftBarButtonItem: 左侧按钮
- rightBarButtonItem: 右侧按钮
左右侧按钮设置
左右侧按钮通常都是UIBarButtonItem对象,可以通过如下代码设置:
UIBarButtonItem *btnLeft = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleDone target:self action:nil];
代码实现:
状态栏设置(Status Bar)
状态栏就是现实时间,运营商,电量的地方;如果导航栏背景色为深色的话,默认的状态栏无法清楚的显示。
状态栏的设置步骤有如下几步:
- 在.plist文件将 UIViewControllerBasedStatusBarAppearance 设置为 YES
- 在 viewDidLoad 方法中添加
[self setNeedsStatusBarAppearanceUpdate]; - 添加 preferredStatusBarStyle 方法:
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
参考
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.