如何增加色彩空间CAGradientLayer

Posted

技术标签:

【中文标题】如何增加色彩空间CAGradientLayer【英文标题】:How to increase the color space CAGradientLayer 【发布时间】:2014-10-03 09:54:51 【问题描述】:

我有一个渐变,它具有三种颜色,黑色、透明色和黑色。你会如何增加中间部分?

我想要的效果是顶部有阴影/渐变,中间清晰的显示内容可以清晰显示,底部有阴影/渐变。这是我目前所拥有的。

如何增加渐变的中间部分?我希望它清楚。这也是我的代码;

CAGradientLayer *gradient = [CAGradientLayer layer];

gradient.frame = self.view.bounds;
gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor blackColor] CGColor],(id)[[UIColor clearColor]CGColor],(id)[[UIColor blackColor] CGColor],nil];
[self.view.layer addSublayer:gradient];

【问题讨论】:

@downvote:为什么投反对票。我提供了代码和屏幕截图。这是向您展示我尝试过的内容。不应该被否决。 【参考方案1】:

尝试使用 gradient.locations

gradient.locations = @[@(0.2), @(0.8), @(1.0)];

【讨论】:

谢谢,我会尝试使用这些位置。【参考方案2】:

你应该使用 CAGradientLayer 的 location 属性:

定义每个渐变停止位置的可选 NSNumber 对象数组。动画。

渐变停止点指定为 0 到 1 之间的值。这些值必须单调递增。如果为零,则止损均匀分布在整个范围内。默认为零。

gradient.locations = @[@0.3, @0.7, @1.0];

Source

【讨论】:

【参考方案3】:

尝试 QuartzCode 使用 GUI 创建渐变,应该有你需要的东西 www.quartzcodeapp.com

【讨论】:

【参考方案4】:

Swift 中的其他答案代码:

gradient.locations = [0.2, 0.8, 1.0]

【讨论】:

以上是关于如何增加色彩空间CAGradientLayer的主要内容,如果未能解决你的问题,请参考以下文章

如何在OpenCV中使用Adobe RGB色彩空间读取jpeg图像?

从 gltf 加载模型时如何增加对比度和色彩饱和度

如何转换Keras中的图像色彩空间?

色彩(颜色)空间原理(中)

如何在scRGB色彩空间中从HDR视频中获取帧?

数字色度计显示本机值的色彩空间是啥