在IOS7下自定义导航栏和状态栏
2013-11-18 18:09
369 查看
一、 改变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;
}
- - 完了,如果有什么问题欢迎指正~
在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;
}
- - 完了,如果有什么问题欢迎指正~
相关文章推荐
- 很好的两篇博文,转载下(自定义ISO控件 及 IOS7的导航栏状态栏)
- iOS7教程系列:自定义导航转场动画以及更多
- 自定义ios7标题栏和状态栏
- 自定义ios7标题栏和状态栏
- 自定义ios7标题栏和状态栏
- 自定义导航栏及实现沉浸式状态栏
- iOS7教程系列:自定义导航转场动画以及更多
- 分别用ToolBar和自定义导航栏实现沉浸式状态栏
- 自定义ios7标题栏和状态栏
- iOS7教程系列:自定义导航转场动画以及更多
- 自定义ios7标题栏和状态栏
- iOS7教程系列:自定义导航转场动画以及更多
- 自定义ios7标题栏和状态栏
- iOS7教程系列:自定义导航转场动画以及更多
- iOS 7自定义导航栏状态栏
- iOS7使用代理自定义导航转场动画
- iOS7导航控制器自定义返回按钮
- 自定义ios7标题栏和状态栏
- 自定义ios7标题栏和状态栏