在IOS7下自定义导航栏和状态栏

一、 改变NavigationBar 的颜色

在IOS7下,UINavigationBar 的 TintColor 已不再用于修改导航栏颜色了,取而代之的是以下代码

[[UINavigationBar appearance] setBarTintColor:[UIColor redColor]];

可以通过设置NavigationBar 的 translucent 为 YES ,使 NavigationBar 具有毛玻璃效果。

PS. 这会使NavigationBar的颜色发生一定量的改变,若想要精确按照视觉设计稿的颜色,可参照 http://www.imallen.com/blog/2013/10/22/how-to-set-bartintcolor-correctly-in-ios-7.html 来做。


二、改变NavigationBar 的背景图

在IOS7下,NavigationBar 的高度变高了,原先为44高度,在IOS7下由于状态栏的浮层化变成了64 高度,因此需要准备更高的背景图~


三、修改导航栏的TitleLabel样式

和之前的IOS6一样,我们可以通过 titleTextAttribute 这属性来修改标题的样式, 之前的 UITextAttributeTextColor 等Key 在IOS7 下作废了,换之的是 NSShadowAttributeName 等Key 。


四、修改返回按钮颜色

返回按钮在IOS7下也成为了个没有边缘的系统按钮样式,与之前一样,会显示上一页面的title或者返回,我们可以通过修改 NavigationBar 的 tintColor

来修改返回按钮的字体颜色

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];

当然这么做的话,整个导航栏的标题与按钮的风格都会改变的啦~(不过一般风格都得同意的吧 = =)

若想要具体到返回按钮,可以通过设置返回按钮的图像来自定义

[[UINavigationBar appearance] setBackIndicatorImage:[UIImage imageNamed:@"back_btn.png"]];
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:[UIImage imageNamed:@"back_btn.png"]];


五、自定义标题栏的View

这个与之前版本类似,可通过修改 titleView 来实现

self.navigationItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"hehe.png"]];


六、修改Status Bar 样式

呵呵。

IOS7下StatusBar 不再是黑色的背景加白色的字和图标了,我们可以对其进行自定义。

一个App 默认的StatusBar 的元素都是黑色的,我们可以设置 UIStatusBarStyle 常量来修改它。

而在一个单独的ViewController里,我们可以重载这个方法

-(UIStatusBarStyle)preferredStatusBarStyle 
{ 
    return UIStatusBarStyleLightContent; 
}

来修改StatusBarStyle。

而修改UIStatusBarStyle 常量的方法,首先我们需要将 info tab 里面的 View controller-based status bar appearance 设置为 NO

然后通过这行代码轻松愉快地修改:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];


七、隐藏StatusBar

IOS6下有个UINavigationController 中有个 setStatusBarHidden 的方法。

而IOS7 下 ,可以在ViewController 下重载下面这个方法解决

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

- - 完了,如果有什么问题欢迎指正~




  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值