我使用selectedImageTintColor
中的TabBarController
属性来更改所选TabBarItem
的颜色。
问题在于,您设置为tintcolor
的颜色不是应用的最终颜色,在更改之前(它会获得某种渐变)
我的问题是,是否可以找到要应用tintcolor
的颜色来获得您知道的最终颜色?
例如,我希望我选择的项目的最终颜色为
[UIColor colorWithRed:(154.0/255.0) green:(213.0/255.0) blue:(0.0) alpha:(1.0)
我应该为属性selectedImageTintColor
设置什么颜色的RGB?
答案 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参考
中查看更多内容