1

我正在使用我的selectedImageTintColor属性TabBarController来更改选定的颜色TabBarItem

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

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

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

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

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

4

2 回答 2

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

于 2013-01-28T09:16:24.057 回答
-1

iOS 不提供修改 tint 颜色渐变的 api。但是苹果文档建议使用 setFinishedSelectedImage:withFinishedUnSelectedImage: 方法。

在 UITabBarItem 参考中查看更多信息

于 2013-01-21T15:45:47.377 回答