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



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

问题是,你设置为tintcolor的颜色不是最终应用的颜色,在它被改变之前(它得到某种梯度)

我的问题是,是否有可能找到适用于tintcolor的颜色以获得您所知道的最终颜色?

例如,我想让我选中的项目的最终颜色为

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

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

如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图形- 101线-矩形-和-梯度

iOS没有提供修改色调渐变的api。然而,苹果文档建议使用setFinishedSelectedImage:withFinishedUnSelectedImage:方法。

查看更多UITabBarItem参考

最新更新