背景信息:我有一個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