我在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参考