我尝试了不同的事情,但没有找到这个问题的答案。 有没有办法如何着色由XIB文件中的UIImageView定义的图像的颜色?
感谢名单
答案 0 :(得分:1)
这是有效的
- (UIImage *)imageWithBurnTint:(UIColor *)color { UIImage *img = self; // lets tint the icon - assumes your icons are black UIGraphicsBeginImageContextWithOptions(img.size, NO, 0.0); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextTranslateCTM(context, 0, img.size.height); CGContextScaleCTM(context, 1.0, -1.0); CGRect rect = CGRectMake(0, 0, img.size.width, img.size.height); // draw alpha-mask CGContextSetBlendMode(context, kCGBlendModeNormal); CGContextDrawImage(context, rect, img.CGImage); // draw tint color, preserving alpha values of original image CGContextSetBlendMode(context, kCGBlendModeSourceIn); [color setFill]; CGContextFillRect(context, rect); UIImage *coloredImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return coloredImage; }
然后
[anImageViewInXib setImage:[center.image imageWithBurnTint:[UIColor blackColor]]];
答案 1 :(得分:1)
您只需更改系统
的按钮类型即可
然后,您将能够管理图像的色调
结果如下图所示:
答案 2 :(得分:0)
你可以尝试这个。为色彩图像
@interface UIImage (Additions)
+ (UIImage *)imageWithColor:(UIColor *)color;
#import "UIImage+Additions.h"
@implementation UIImage (Additions)
+ (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;
}
答案 3 :(得分:0)
您可以使用新的iOS7 apis来执行此操作。
UIImage *image = [self.imageView.image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
imageView.image = image;
imageView.tintColor = [UIColor redColor];
第一步是获取现有图像并制作该图像的副本,并将渲染模式设置为模板。将返回的图像设置回imageView,最后在图像视图上设置色调颜色。