gpt4 book ai didi

ios - 突出显示时如何从 UIButton 中删除 CAGradientLayer

转载 作者:行者123 更新时间:2023-11-28 19:35:10 30 4
gpt4 key购买 nike

我为我的 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];

现在,当我的按钮高亮显示(调用 touchedDown 方法)时,我想为 myButton 设置新的渐变。因此,我需要在单击 myButton 时删除旧的渐变效果并添加新的渐变。

如何去除旧的渐变效果?

我试过了

for (CALayer *layer in [self.loginScreenView.btnPowerBroking.layer.sublayers copy]){
if ([[layer name] isEqualToString:@"gradientLayer"]) {
NSLog(@"Gradient layer found.");
}
}

但我无法获取它的渐变图层。

感谢您的宝贵时间。 (:

最佳答案

您还没有为您的 gradientLayer 对象设置 name 属性,只要设置它就可以了。

 gradientLayer.name = @"gradientLayer";
[self.myButton.layer addSublayer:gradientLayer];

在 for 循环的 if 语句 中使用此 [layer removeFromSuperlayer]; 移除图层

注意:您正在 myButton 对象中添加层以在 btnPowerBroking 中搜索,同时检查是否正确,您需要在按钮中搜索您在其中添加了 Layer

关于ios - 突出显示时如何从 UIButton 中删除 CAGradientLayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39746388/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com