gpt4 book ai didi

ios - 如何将 CAGradientLayer 添加到 UIButton

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:13 25 4
gpt4 key购买 nike

我正在尝试修改按钮的外观并花了很长时间试图找出为什么我不能像下面这个简单的代码那样对其应用渐变:

[self.playButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
self.playButton.backgroundColor = [UIColor blackColor];

CAGradientLayer *gradient = [[CAGradientLayer alloc] init];
gradient.frame = self.playButton.bounds;
gradient.position = CGPointMake(self.playButton.bounds.size.width/2, self.playButton.bounds.size.height/2);
gradient.colors = [NSArray arrayWithObjects:
(id)[UIColor greenColor].CGColor,
(id)[UIColor redColor].CGColor,
nil];
gradient.locations = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.0f],
[NSNumber numberWithFloat:1.0f],
nil];

[self.playButton.layer addSublayer:gradient];

它执行了,但没有任何反应。我知道代码应该可以工作,因为很多其他人都在使用它,当将 self.playButton 更改为 self.view 时,它会添加一个漂亮的红绿色渐变层UIView

可能值得注意的是,我将自定义按钮定义为 IBOutlet,如下所示:

@property (weak, nonatomic) IBOutlet UIButton *playButton;

非常感谢任何帮助。

更新和修复

当更改按钮以使用可缩放图像而不是渐变时,我忘记重新注释渐变代码(在尝试 rokjarc 的想法之后)以及更改按钮的 imageView.contentUIViewContentModeScaleToFill 渐变显示...

self.playButton.imageView.contentMode = UIViewContentModeScaleToFill;

谢谢rokjarc我想 :D

最佳答案

简单的改变

self.playButton.backgroundColor = [UIColor blackColor];

self.playButton.backgroundColor = [UIColor clearColor];

刚刚测试,它有效。

关于ios - 如何将 CAGradientLayer 添加到 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074223/

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