您的位置:首页 > 其它

NavigationBar 背景色设置

2016-10-27 16:18 302 查看
一、设置导航条颜色

    iOS 7.0及以上版本,使用下面的函数设置背景图片,图片需要提供320*64的1、2、3倍图

    - (void)setBackgroundImage:(nullableUIImage
*)backgroundImage forBarPosition:(UIBarPosition)barPosition barMetrics:(UIBarMetrics)barMetricsNS_AVAILABLE_IOS(7_0)UI_APPEARANCE_SELECTOR;

    iOS 7.0以下版本,使用下面的函数设置背景图片,图片需要提供320*44的1、2、3倍图

    - (void)setBackgroundImage:(nullableUIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetricsNS_AVAILABLE_IOS(5_0)UI_APPEARANCE_SELECTOR;

    注意:如需设置导航透明,直接设置一个透明的图片就行。

二、解决导航条底部(tabbar顶部的)的黑色线条

    原因:由于包含一个shadowImage的视图导致。

    解决方案:

    1、直接隐藏

if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
NSArray *list=self.navigationController.navigationBar.subviews;
for (id obj in list) {
if ([obj isKindOfClass:[UIImageView class]]) {
UIImageView *imageView=(UIImageView *)obj;
NSArray *list2=imageView.subviews;
for (id obj2 in list2) {
if ([obj2 isKindOfClass:[UIImageView class]]) {
UIImageView *imageView2=(UIImageView *)obj2;
imageView2.hidden=YES;
}
}
}
}
}

    2、设置shadowImage,注意图片高度,因为不会被clip(即图片超出也会显示)

@property(nullable,nonatomic,strong)UIImage
*shadowImage NS_AVAILABLE_IOS(6_0)UI_APPEARANCE_SELECTOR;

    3、在导航条上加一个图片视图,并将该视图send到最底层作为背景,不然会遮挡导航条上的按钮和title

Objective C code

?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息