【iOS开发笔记】去掉默认导航下面的横线

2019-06-25  本文已影响0人  Mr_Ten

开发中会有用到系统导航的情况,设计师有时候希望导航跟下面的内容的颜色能够有一种融合一体的感觉,直接设置颜色之后却发现有导航和显示内容之间有一条怎么看怎么丑的线条,丑到你词穷,丑到都不知道用什么理由去搪塞设计师和产品经理...
记得高中的班主任说过,穷则变,变则通...
我们变一下吧。
(这篇内容太短了,多写点字充充场面)

那么这个丑的不行的线是什么呢?
其实这是navigationBar的shadowImage,所以只要设置它为空即可,但是设置它为空之前应该先设置它的背景也为空。

//去掉NavBar下面的横线
     [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
     [self.navigationController.navigationBar setShadowImage:[UIImage new]];

既然Navigation的横线可以去掉,那么...TabBar的也可以吧?
是的,其实算是一类东西。

//去掉TabBar下面的横线
[self.tabBarController.tabBar setBackgroundImage:[UIImage new]];
[self.tabBarController.tabBar setShadowImage:[UIImage new]];

既然可以去掉...那改成别的颜色也可以喽?
自然是可以的,把shadowImage设置成你想要的颜色吧

//颜色转图片的分类方法
@implementation UIImage (ColorImage)
+ (UIImage *)imageWithColor:(UIColor *)color{ 
 CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); 
 UIGraphicsBeginImageContext(rect.size); 
 CGContextRef context = UIGraphicsGetCurrentContext(); 
 CGContextSetFillColorWithColor(context, [color CGColor]); 
 CGContextFillRect(context, rect); 
 UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
 UIGraphicsEndImageContext(); 
 return image;
}
@end

通过设置想要的颜色转成图片然后塞到shadowImage里面

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setShadowImage:[UIImage imageWithColor:[UIColor redColor]]];
上一篇下一篇

猜你喜欢

热点阅读