gpt4 book ai didi

ios - 带有 GradientLayer 的 UIButton 会遮挡图像并使渐变变暗

转载 作者:IT王子 更新时间:2023-10-29 07:46:56 25 4
gpt4 key购买 nike

我这里有一个 UIButton,我希望在其中有一个渐变作为图像下方的背景(具有透明背景的符号),但我面临两个不同的问题。

无论我如何尝试添加,CAGradientLayer 的第一个似乎都覆盖在图像之上,完全遮盖了图像。

其次,渐变本身似乎变暗了很多,就像按钮被禁用了一样,但事实并非如此。

这是我的代码:

self.backButton = [[UIButton alloc] initWithFrame:CGRectMake(15, 35, 28, 28)];
[backButton addTarget:self
action:@selector(goBack)
forControlEvents:UIControlEventTouchUpInside];
[backButton setBackgroundColor:[UIColor clearColor]];
CAGradientLayer *buttonGradient = [CAGradientLayer layer];
buttonGradient.frame = backButton.bounds;
buttonGradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:.0
green:.166
blue:.255
alpha:1] CGColor],
(id)[[UIColor colorWithRed:.0
green:.113
blue:.255
alpha:1] CGColor],
nil];
[buttonGradient setCornerRadius:backButton.frame.size.width / 2];
[backButton.layer insertSublayer:buttonGradient
atIndex:0];
[backButton setImage:[UIImage imageNamed:@"backarrow.png"]
forState:UIControlStateNormal];
[backButton setEnabled:NO];
[topbarView addSubview:backButton];

最佳答案

所以我设法通过在添加渐变后执行 [button bringSubviewToFront:button.imageView] 来解决这个问题。似乎无论我做什么,新层都会添加到 imageView 的顶部,所以我需要在之后将其推到前面。

objective-C :

[button bringSubviewToFront:button.imageView] 

swift 4.1:

button.bringSubview(toFront:button.imageView!)

关于ios - 带有 GradientLayer 的 UIButton 会遮挡图像并使渐变变暗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106637/

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