【发布时间】:2016-09-28 11:39:42
【问题描述】:
我为我的按钮添加了渐变效果,并将其作为子层添加到我的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];
现在,当我的按钮被突出显示(调用 touchedDown 方法)时,我想为 myButton 设置新的渐变。因此,当单击 myButton 并添加新渐变时,我需要删除旧的渐变效果。
如何去除旧的渐变效果?
我试过了
for (CALayer *layer in [self.loginScreenView.btnPowerBroking.layer.sublayers copy]){
if ([[layer name] isEqualToString:@"gradientLayer"]) {
NSLog(@"Gradient layer found.");
}
}
但我无法得到它的渐变层。
感谢您的宝贵时间。 (:
【问题讨论】:
-
感谢您的编辑。我忘了注意问题中的这些小事情。在问下一个问题时,我会记住这些。 (:
标签: ios objective-c uibutton cagradientlayer