1: 修改导航控制器背景图片的方式(IOS5以上)
1 | [[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; |
注: 通过appearance可以设置全局的控件初始化外观.不过在初始化成功以后,有单独样式需求亦可用同样的方法修改.
UINavigationBar的标准高度是44,在iOS7之前可以通过44+X的方式实现背景+阴影的效果.从iOS7以后就不行了.
iOS7对UINavigationBar的标准进行重新的定义,其高度可以延伸到状态栏.所以44+20的高度等于64.
而刚刚说的44+X方式不再适用于iOS7,iOS7的新规范是64+1.背景图和阴影将单独来设定,代码如下:
1 2 3 4 | //iOS7 新背景图片设置方法 高度 必需是 64 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@ "toolbar_background_iOS7Test" ] forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault]; //iOS7 阴影需单独设定 UIColor clearColor 是去掉字段 1像素阴影 [self.navigationController.navigationBar setShadowImage:[UIImage Help_imageWithColor:[UIColor clearColor]]]; |
2:为UINavigationBar设置半透明的背景效果:
1 | [self.navigationController.navigationBar setTranslucent:YES]; |
注:在iOS7中 默认生成 UINavigationBar的translucent属性为YES. 自动添加遮罩模糊效果.
3:修改UINavigationBar的背景颜色(iOS7以上)
1 | [[UINavigationBar appearance] setBarTintColor:[UIColor redColor]]; |