有的時候因為項目需求,對tabbar以及navigationbar笤妙,需要去掉或者改變頂部及底部細線的顏色硅则,對于這個問題庭瑰,筆者在這里總結一下,方法不難抢埋,至于導航欄底部和tabbar頂部的黑線從何而來呢弹灭?通過層次結構會發(fā)現(xiàn),是由于導航欄或者tabbar設置的默認圖片導致的揪垄,要消除這種效果穷吮,就要摒棄系統(tǒng)自帶的圖片,自己生成一張圖片饥努,或者設置空的圖片捡鱼,下面就來上代碼:
1.改變或者消除tabbar底部細線及其顏色
[self.tabBar setBackgroundImage:[UIImage new]];
[self.tabBar setShadowImage:[self.tabBar lineImageWithColor:[UIColor colorWithHexString:@"#fb9966"]]];
第一步是設置背景圖片,第二部設置陰影圖片酷愧,上面的是改變細線的顏色驾诈,我們可以自己畫一張圖片,畫圖片的方法如下:
- (UIImage *)lineImageWithColor:(UIColor *)lineColor {
CGRect rect = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 0.5);
UIGraphicsBeginImageContext(rect.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(ctx, lineColor.CGColor);
CGContextFillRect(ctx, rect);
UIImage *lineImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return lineImage;
}
當然溶浴,如果想要去除黑線乍迄,只需要將shadowImage也設置未空白圖片就可以了
2.去除或者改變navigationbar底部黑線
原理類似,直接上代碼吧
[self.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[self.navigationBar setShadowImage:[self.navigationBar lineImageWithColor:[UIColor colorWithHexString:@"#fb9966"]]];
至于導航欄比較多變士败,這一點完全可以隱藏掉系統(tǒng)的導航欄闯两,自己做一個就行了