gpt4 book ai didi

iOS CAGradientLayer 不适用于某些颜色

转载 作者:行者123 更新时间:2023-12-01 17:47:38 24 4
gpt4 key购买 nike

我使用下面的代码来设置我的 View 的渐变背景颜色。

 CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.view.bounds;
gradient.colors = @[(id)[UIColor colorWithRed:44/255 green:58/255 blue:76/255 alpha:1].CGColor, (id)[UIColor colorWithRed:17/255 green:22/255 blue:30/255 alpha:1].CGColor];
[self.view.layer insertSublayer:gradient atIndex:0];

但它不起作用。屏幕将显示为黑色。但是当我尝试像下面这样设置颜色时
gradient.colors = @[(id)[UIColor blueColor].CGColor, (id)[UIColor redColor].CGColor];

然后它工作正常。我得到正确的输出。谁能帮我解释一下为什么渐变颜色不能与 UIColor colorWithRed 函数一起使用。

提前致谢。

最佳答案

为了使原始海报的代码正常工作,他只需将每个颜色分量除以 255.0 而不是 255,否则结果将被截断为 int。

CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.view.bounds;
gradient.colors = @[(id)[UIColor colorWithRed:44/255.0 green:58/255.0 blue:76/255.0 alpha:1].CGColor, (id)[UIColor colorWithRed:17/255.0 green:22/255.0 blue:30/255.0 alpha:1].CGColor];
[self.view.layer insertSublayer:gradient atIndex:0];

或者,将股息设为浮点值:
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.view.bounds;
gradient.colors = @[(id)[UIColor colorWithRed:44.0/255 green:58.0/255 blue:76.0/255 alpha:1].CGColor, (id)[UIColor colorWithRed:17.0/255 green:22.0/255 blue:30.0/255 alpha:1].CGColor];
[self.view.layer insertSublayer:gradient atIndex:0];

或者最容易遵循的解决方案,将除法中的两个数字都设为浮点值:
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = self.view.bounds;
gradient.colors = @[(id)[UIColor colorWithRed:44.0/255.0 green:58.0/255.0 blue:76.0/255.0 alpha:1].CGColor, (id)[UIColor colorWithRed:17.0/255.0 green:22.0/255.0 blue:30.0/255.0 alpha:1].CGColor];
[self.view.layer insertSublayer:gradient atIndex:0];

关于iOS CAGradientLayer 不适用于某些颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43731344/

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