Я хочу сделать следующее:UIImage Добавить Gray tranparency
Как вы можете видеть одно изображение (выбранное) не имеет серую увядает, а другой (невыбранных пункт) делает не.
Я пробовал несколько решений. В том числе окрашивания изображений с серым цветом
- (UIImage *)colorizeImage:(UIImage *)image withColor:(UIColor *)color {
UIGraphicsBeginImageContext(image.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect area = CGRectMake(0, 0, image.size.width, image.size.height);
CGContextScaleCTM(context, 1, -1);
CGContextTranslateCTM(context, 0, -area.size.height);
CGContextSaveGState(context);
CGContextClipToMask(context, area, image.CGImage);
[color set];
CGContextFillRect(context, area);
CGContextRestoreGState(context);
CGContextSetBlendMode(context, kCGBlendModeMultiply);
CGContextDrawImage(context, area, image.CGImage);
UIImage *colorizedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return colorizedImage;
}
Однако при таком подходе я бегу на вопрос где, если Б.Г. образа имеет прозрачность белый ниже его просвечивания, и это выглядит странно:
Как определить прозрачность и изменить прозрачность на белый? Или есть лучшее решение для этого?
image = [self imageWithImage:image scaledToSize:CGSizeMake((self.collectionViewContainer.frame.size.width/3),90)];
UIImage *unSelected = [self colorizeImage:image withColor:[[UIColor grayColor] colorWithAlphaComponent:.9]];
UIImageView *imgView = [[UIImageView alloc] initWithImage:unSelected highlightedImage:image];
В McDonads? image, вы хотите, чтобы белая область вообще выглядела серым? – rmaddy
Вы можете добавить UIView, который имеет черный или серый фон и добавить его непосредственно над вашим UIImageView. Вы можете изменить альфа для разных уровней прозрачности. Убедитесь, что для непрозрачного свойства UIView установлено значение NO. –
@rmaddy Я хочу, чтобы все изображения имели одинаковую затенение. Так что я хочу, чтобы белая область была серой. – Aziz