gpt4 book ai didi

ios - CAGradientLayer 显示为纯色

转载 作者:行者123 更新时间:2023-12-01 19:26:41 26 4
gpt4 key购买 nike

我正在尝试在 View 上设置渐变背景,但下面的代码使 UIView 显示为纯黑色。如果我将白色更改为绿色,渐变将正确显示。将图层的背景颜色更改为 greenColor 会使 View 显示为纯绿色。

我的猜测是我正在处理某种透明度问题,但我无法解决它。

CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.colors = [NSArray arrayWithObjects:
(id)[[UIColor whiteColor] CGColor],
(id)[[UIColor blackColor] CGColor], nil];
gradientLayer.frame = CGRectMake(0, 0, 1, someView.frame.size.height);

UIGraphicsBeginImageContext(CGSizeMake(1, someView.frame.size.height));
[gradientLayer renderInContext: UIGraphicsGetCurrentContext()];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

someView.backgroundColor = [UIColor colorWithPatternImage: image];

最佳答案

您的白色和黑色位于灰度色彩空间中。尝试在 RGB 色彩空间中制作它们:

gradientLayer.colors = @[
(id)[UIColor colorWithRed:0 green:0 blue:0 alpha:1].CGColor,
(id)[UIColor colorWithRed:1 green:1 blue:1 alpha:1].CGColor
];

这应该可以解决您的问题,尽管我不确定这背后的 Quartz 机制。

关于ios - CAGradientLayer 显示为纯色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5448618/

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