SearchBar TintColor没有应用正确

时间:2012-10-12 07:51:25

标签: iphone objective-c ios colors uisearchbar

我的SearchBar的TintColor有问题。我在导航栏和搜索栏上使用相同的RGB颜色。如下所示,颜色不一样。

enter image description here

这是我用来设置导航栏的TintColor的代码:

    self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:34/255.0f green:113/255.0f blue:179/255.0f alpha:1];

这就是我用来设置searchBar的TintColor。

    self.mySearchBar.tintColor = [UIColor colorWithRed:34/255.0f green:113/255.0f blue:179/255.0f alpha:1];

所以,正如你所看到的那样,这两行几乎是一样的。关于如何获得相同颜色的任何想法?

非常感谢任何建议!

修改: 我使用XCode 4.3.3开发iOS 4.0,并在iOS 5的设备上测试

1 个答案:

答案 0 :(得分:6)

我有类似的问题,这就是我最终做的事情,

[[UISearchBar appearance] setBackgroundImage:[UIImage imageWithColor:[UIColor colorWithRed:34/255.0f green:113/255.0f blue:179/255.0f alpha:1]]];
[[UIToolbar appearance] setBackgroundImage:[UIImage imageWithColor:[UIColor colorWithRed:34/255.0f green:113/255.0f blue:179/255.0f alpha:1]] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];

但这种方法的问题在于它不会完全着色。

<强>更新 imageWithColorUIImage上的类别。

+ (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;
}