XIB中UIImage的色调

时间:2013-09-20 09:31:37

标签: ios uiimageview xib

我尝试了不同的事情,但没有找到这个问题的答案。 有没有办法如何着色由XIB文件中的UIImageView定义的图像的颜色?

感谢名单

4 个答案:

答案 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)

您只需更改系统

的按钮类型即可

enter image description here

然后,您将能够管理图像的色调

结果如下图所示:

enter image description here

答案 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,最后在图像视图上设置色调颜色。