我有一个应用程序,其中我使用导航栏和工具栏(在底部)。从中心到底部都有阴影。这就是我创建工具栏的方式。 / p>
[self.navigationController setToolbarHidden:NO animated:YES];
self.navigationController.toolbar.barStyle = UIBarStyleBlackOpaque;
self.navigationController.toolbar.frame=CGRectMake(0, [[UIScreen mainScreen] bounds].size.height -12, [[UIScreen mainScreen] bounds].size.width,30);
self.navigationController.toolbar.tintColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"top_bar.png"]];
and i am doing the navigation bar like this
UIImage *navBar = [UIImage imageNamed:@"top_bar.png"];
[[UINavigationBar appearance] setBackgroundImage:navBar forBarMetrics:UIBarMetricsDefault];
`有人能指出我出错的地方吗?
答案 0 :(得分:1)
我认为最简单的方法是创建1x1 UIImage,然后将其设置为导航栏和工具栏的背景图像。这将消除渐变,并使两个条形成您选择的纯色。这是一个例子:
UIImage *image = [self imageWithColor:[UIColor redColor]];
[[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
[[UIToolbar appearance] setBackgroundImage:image forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
- (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 *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
如果你想摆脱导航栏下面的阴影,这对我有用:
[self.navigationController.navigationBar setClipsToBounds:YES];