从导航/标签栏中删除光泽/渐变效果

时间:2013-04-07 17:50:44

标签: ios uinavigationbar uicolor

我想删除UINavigationBarUITabBar中出现的渐变效果。下图显示了使用自定义UIColor 7/29/88(RGB)的示例选项卡栏,使用setTintColor:color进行设置,如您所见,标签栏在栏的上半部分有一个光泽。 / p>

enter image description here

如何删除?

3 个答案:

答案 0 :(得分:6)

取决于您对“删除”的定义。在iOS 6.x(未测试iOS 4/5)中,以下工作。

// this will show a tab bar with a solid background color
tabBar.backgroundImage = [UIImage new];
tabBar.backroundColor = [UIColor blueColor];

// this will show a navigation bar with a solid background color
[navBar setBakgroundImage:[UIImage new]
            forBarMetrics:UIBarMetricsDefault]];
navBar.shadowImage = [UIImage new];
navBar.backgroundColor = [UIColor blueColor];
navBar.tintColor = [UIColor blueColor];

答案 1 :(得分:2)

这是不可能的。但是,您可以使用自定义背景图像。查看UIAppearance文档

答案 2 :(得分:2)

我从导航栏中删除渐变效果,您可以尝试使用此代码并查看它是否也适合您。

//First, create your own Navigation Bar Class, and add this to your init method.

self.tintColor = [UIColor clearColor];
self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage"]];

//Add this to your DrawRect method
- (void)drawRect:(CGRect)rect {
    UIColor *color = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yourImage"]]; 
   //If you want a plain color change this

    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColor(context, CGColorGetComponents([color CGColor]));
    CGContextFillRect(context, rect);
}