如何使我的导航栏和底部的工具栏成为单一颜色?

时间:2013-08-10 12:44:12

标签: iphone ios ipad

this is how it looks like我有一个应用程序,其中我使用导航栏和工具栏(在底部)。从中心到底部都有阴影。这就是我创建工具栏的方式。 / 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];

`有人能指出我出错的地方吗?

1 个答案:

答案 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];