删除导航栏/搜索栏底部的暗线

时间:2012-12-06 14:23:18

标签: ios xcode uinavigationbar uisearchbar

我想做一个干净的白色设计。因此,我将tintColor属性设置为whiteColor,但UINavigationBarUISearchBar下有这些暗线。

有人知道,如何删除暗线或如何更改颜色?

3 个答案:

答案 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。