我添加了带有背景图像的UINavigation栏。
但不幸的是,在UINavigation Bar的中间显示了一条不需要的1px发际线。
我想要隐藏该行,但它无法正常工作。我添加了以下代码。
self.navigationController.navigationBar.translucent = NO;
[self.navigationController.navigationBar setShadowImage:nil];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navBarImg.png"] forBarMetrics:UIBarMetricsDefault];
答案 0 :(得分:1)
如果您不需要将导航栏设置为透明,则可以使用以下代码
[self.navigationController.navigationBar setBackgroundImage:[self imageFromColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:1]] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
并添加以下方法以生成uiimage。
- (UIImage *)imageFromColor:(UIColor *)color {
CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}