UITabBarItem selectedImageTintColor。如何找到设置为tintcolor的颜色

时间:2013-01-21 15:01:24

标签: ios cocoa-touch uitabbaritem tintcolor

我使用selectedImageTintColor中的TabBarController属性来更改所选TabBarItem的颜色。

问题在于,您设置为tintcolor的颜色不是应用的最终颜色,在更改之前(它会获得某种渐变)

我的问题是,是否可以找到要应用tintcolor的颜色来获得您知道的最终颜色?

例如,我希望我选择的项目的最终颜色为

[UIColor colorWithRed:(154.0/255.0) green:(213.0/255.0) blue:(0.0) alpha:(1.0)

我应该为属性selectedImageTintColor设置什么颜色的RGB?

2 个答案:

答案 0 :(得分:0)

如Ankit所述,您最好的选择是使用

- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage

但是,我很欣赏你需要有一个UIImage才能做到这一点。如果您的设计师无法为您提供此功能,那么您可以做的就是在代码中绘制自己的UIImage。

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

显然,这段代码不会为您绘制渐变,但它会向您展示绘制UIImage的基础知识。我将看一下像下面这样的教程,找出如何绘制所需的精确渐变:

http://www.raywenderlich.com/2033/core-graphics-101-lines-rectangles-and-gradients

答案 1 :(得分:-1)

iOS不提供用于修改色调渐变的API。但是Apple文档建议使用setFinishedSelectedImage:withFinishedUnSelectedImage:method。

在UITabBarItem参考

中查看更多内容