问题
I want to make a clean white Design. So, I set the tintColor
property to whiteColor
, but there are these dark Lines under the UINavigationBar
and UISearchBar
.
Do some one know, how to remove the dark Lines or how to change the Color?
回答1:
This is what I did, and seemed to work, it is a further development of this link. I changed the explicit width declaration to a dynamic one, so that it will be the size of the view if you change view size or not:
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];
I found the stuff here: How to remove UINavigatonItem's border line
回答2:
add a method to UIImage by category
+ (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;
}
and just set
[self.navigationController.navigationBar setShadowImage:[UIImage imageWithColor:[UIColor whiteColor]]];
回答3:
From iOS 7 UINavigationBar has a shadowImage property that you can set to nil.
来源:https://stackoverflow.com/questions/13745612/remove-the-dark-line-at-the-bottom-of-navigationbar-searchbar