背景信息:我有一个UIImageView
。我在下面的方式增加了一个覆盖彩色自己的形象上:如何在iOS中使用渐变创建叠加颜色
UIGraphicsBeginImageContext(initialImage.size);
[initialImage drawInRect:CGRectMake(0, 0, initialImage.size.width, initialImage.size.height) blendMode:kCGBlendModeNormal alpha:alphaValue];
UIBezierPath * path = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0, initialImage.size.width, initialImage.size.height)];
[overlayColor setFill];
[path fillWithBlendMode:kCGBlendModeMultiply alpha:1];
finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self setImage:finalImage];
我还是要添加为一个叠加的颜色,但是我希望它有一个梯度。我一直在想办法做到这一点,但并没有真正取得成功。我想,用渐变添加叠加颜色的方法是错误的?我不知道如何做到这一点。我试图添加一个CGGradientLayer
作为sublayer
到UIImageView
,但它不起作用。
我想过加入UIView
并设置它的backgroundColor
为overlayColor
,然后添加一个CGGradientLayer
作为添加为subview
到UIImageView
的UIView
的sublayer
但是,我们不应该添加到subviews
UIImageViews
。
有人可以帮助我吗?也许我应该改变我的方法?
指引我走向正确的方向也将很棒!
我期待着您的回复和道歉,如果这篇文章还没有完全清楚!
在此先感谢您的帮助!
编辑:代码为CGGradientLayer
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.frame;
UIColor *colorOne = [UIColor colorFromHex:self.feedColor withAlpha:(alphaValue * 0.7)];
UIColor *colorTwo = [UIColor colorFromHex:self.feedColor withAlpha:(alphaValue * 1.0)];
gradient.colors = [NSArray arrayWithObjects:(id)colorOne.CGColor, (id)colorTwo.CGColor, nil];
[self.layer insertSublayer:gradient atIndex:0];
您是否在'UIImageView'图层上方插入了'CGGradientLayer'? – chedabob
是的,我刚刚编辑我的帖子来显示代码。希望这是你问的问题! – Aashay