我为我的Button添加了渐变效果,并将其作为子图层添加到我的Button
。
代码是:
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = self.myButton.layer.bounds;
gradientLayer.colors = [NSArray arrayWithObjects: (id)[[UIColor whiteColor] colorWithAlphaComponent:0.5].CGColor,(id) colorTwo.CGColor,(id) colorThree.CGColor,(id) colorFour.CGColor, nil];
gradientLayer.locations = [NSArray arrayWithObjects: [NSNumber numberWithFloat:0.0f], [NSNumber numberWithFloat:1.0f], nil];
self.myButton.layer.cornerRadius = 5;
gradientLayer.cornerRadius = self.myButton.layer.cornerRadius;
[self.myButton.layer addSublayer:gradientLayer];
现在当我的按钮突出显示(被调用的touchDown方法)时,我想为myButton设置新的渐变。因此,当单击myButton并添加新渐变时,我需要删除旧的渐变效果。
如何删除旧的渐变效果?
我试过
for (CALayer *layer in [self.loginScreenView.btnPowerBroking.layer.sublayers copy]){
if ([[layer name] isEqualToString:@"gradientLayer"]) {
NSLog(@"Gradient layer found.");
}
}
但我无法获得它的渐变层。
感谢您的时间。 (:
答案 0 :(得分:2)
您尚未将name
属性设置为gradientLayer
对象,只需设置它即可。
gradientLayer.name = @"gradientLayer";
[self.myButton.layer addSublayer:gradientLayer];
for for循环if statement
使用此[layer removeFromSuperlayer];
注意:您正在myButton
对象中添加图层以正确搜索btnPowerBroking
内部的内容,您还需要在已添加{{}的按钮中搜索1}}。
答案 1 :(得分:0)
尝试这种方法......
[self.myButton.layer replaceSublayer:oldgradientLayer with:newgradientLayer];