UITabbar的背景颜色

场景:
实现背景是白色,而不是第二张图默认的灰白
(默认效果)


解决方式:
self.tabBar.backgroundColor = [UIColor whiteColor];
运行时发现没效果,查看tabbar的层级,才知道tabbar有好几层.(navigationBar也是很多层)
UITabbar的背景颜色_第1张图片

我的做法是这样的:
self.tabBar.backgroundImage = [UIImage imageWithColor:[UIColor whiteColor] rect:self.tabBar.bounds];

// 通过颜色生成指定大小的图片
+ (UIImage *)imageWithColor:(UIColor *)color rect:(CGRect)rect{
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, color.CGColor);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
return image;
}

另外还有一种做法是给tabbar添加一个同样大小白色背景的子view:
UIView *backView = [[UIView alloc]initWithFrame:self.tabBar.bounds];
backView.backgroundColor = [UIColor whiteColor];
[self.tabBar insertSubview:backView atIndex:0];

你可能感兴趣的:(UITabbar的背景颜色)