Как цветное заполнение черного и прозрачного изображения в iOS?
Например, на панели инструментов iOS вы перетаскиваете свой собственный .png, который непрозрачен черным и прозрачным, и он автоматически добавляет синий блеск iOS.
Тем не менее, я хотел бы знать, как сделать это самостоятельно, но только сплошные цвета сделают.
Например, если у вас есть это изображение:
![Example]()
Что бы вы сделали, чтобы сделать весь цельный, розовый, синий или серый? Я хочу сократить количество версий .png Я сохраняю в своем приложении, раскрашивая их кодом.
Спасибо!
Ответы
Ответ 1
Это должно сделать это за вас:
- (UIImage *)colorImage:(UIImage *)origImage withColor:(UIColor *)color
{
UIGraphicsBeginImageContextWithOptions(origImage.size, YES, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, (CGRect){ {0,0}, origImage.size} );
CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, origImage.size.height);
CGContextConcatCTM(context, flipVertical);
CGContextDrawImage(context, (CGRect){ pt, origImage.size }, [origImage CGImage]);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
Ответ 2
Как и в iOS 7, вы можете теперь цвет черный (оттенки серого)/прозрачные изображения одним и тем же цветом
UIImage *image = [UIImage imageNamed:@"myImage.png"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:[image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]];
imageView.tintColor = [UIColor redColor];