标题所说的黑线指navigationBar底部的黑线和tabBar顶部的黑线
tabBar和navigationBar 设置这个线的颜色都是使用 setShadowImage这个方法.
//这两行比加
UIImage *colorImage = [self imageWithColor:[UIColor clearColor] size:CGSizeMake(self.view.frame.size.width, 0.5)];
[self.navigationController.navigationBar setBackgroundImage:colorImage forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[self imageWithColor:[UIColor redColor] size:CGSizeMake(self.view.frame.size.width, 0.5)]];
[_tabbarViewController.tabBarsetShadowImage:[UIImageimageWithColor:kAppCommonColorsize:CGSizeMake(SCREEN_WIDTH,0.5)]];
这里调用了一个 imageWithColor:(UIColor *)color size:(CGSize)size 内部实现如下.
+ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size {
if (!color || size.width <=0 || size.height <=0) return nil;
CGRect rect = CGRectMake(0.0f, 0.0f, size.width, size.height);
UIGraphicsBeginImageContextWithOptions(rect.size,NO, 0);
CGContextRef context =UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, color.CGColor);
CGContextFillRect(context, rect);
UIImage *image =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}