我想做一个干净的白色设计。因此,我将tintColor
属性设置为whiteColor
,但UINavigationBar
和UISearchBar
下有这些暗线。
有人知道,如何删除暗线或如何更改颜色?
答案 0 :(得分:3)
按类别
向UIImage添加方法+ (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 *theImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return theImage;
}
然后设置
[self.navigationController.navigationBar setShadowImage:[UIImage imageWithColor:[UIColor whiteColor]]];
答案 1 :(得分:1)
这就是我所做的,而且似乎有效,这是这个链接的进一步发展。我将显式宽度声明更改为动态宽度声明,因此如果您更改视图大小,它将是视图的大小:
UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 43, self.view.frame.size.width, 1)];
[overlayView setBackgroundColor:[UIColor whiteColor]];
[navBar addSubview:overlayView]; // navBar is your UINavigationBar instance
[overlayView release];
我找到了这里的东西: How to remove UINavigatonItem's border line
答案 2 :(得分:0)
从iOS 7 UINavigationBar有一个shadowImage属性,您可以将其设置为nil。