我正在尝试设置某些UIView
元素的背景颜色。
我想在上面涂上蓝色和破折号图案。我知道我可以制作一个新的 UIView 作为它的孩子并用它绘制
[UIColor colorWithPatternImage:pattern]
但我特别想要一张UIView
,所以买一张UIColor
上面有蓝色背景和图案图像的。
马尔科
编辑 :
图案图像是这样的:
结果应该是:
我正在尝试设置某些UIView
元素的背景颜色。
我想在上面涂上蓝色和破折号图案。我知道我可以制作一个新的 UIView 作为它的孩子并用它绘制
[UIColor colorWithPatternImage:pattern]
但我特别想要一张UIView
,所以买一张UIColor
上面有蓝色背景和图案图像的。
马尔科
编辑 :
图案图像是这样的:
结果应该是:
- (UIImage *)image:(UIImage *)image withColor:(UIColor *)color {
CGSize backgroundSize = image.size;
UIGraphicsBeginImageContext(backgroundSize);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGRect backgroundRect;
backgroundRect.size = backgroundSize;
backgroundRect.origin.x = 0;
backgroundRect.origin.y = 0;
float r,g,b,a;
[color getRed:&r green:&g blue:&b alpha:&a];
CGContextSetRGBFillColor(ctx, r, g, b, a);
CGContextFillRect(ctx, backgroundRect);
CGRect imageRect;
imageRect.size = image.size;
imageRect.origin.x = (backgroundSize.width - image.size.width)/2;
imageRect.origin.y = (backgroundSize.height - image.size.height)/2;
// Unflip the image
CGContextTranslateCTM(ctx, 0, backgroundSize.height);
CGContextScaleCTM(ctx, 1.0, -1.0);
CGContextSetBlendMode(ctx, kCGBlendModeMultiply);
CGContextDrawImage(ctx, imageRect, image.CGImage);
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
使用上述方法如下
UIImage *img = [UIImage imageNamed:@"Z2AmQ.png"];
[self.tmpView setBackgroundColor:[UIColor colorWithPatternImage:[self image:img withColor:[UIColor blueColor]]]];