我使用以下代码设置渐变颜色:
NSArray *locations = @[@0.0, @0.1f];
CAGradientLayer *headerLayer = [CAGradientLayer layer];
headerLayer.colors = colors;
headerLayer.locations = locations;
如何制作径向渐变色?
我想我必须改变位置,但我没猜到正确的位置。另外,我试过这个:
headerLayer.anchorPoint = CGPointMake(0.5, 1.0);
但它不起作用。
感谢。
答案 0 :(得分:3)
不幸的是,CAGradientLayer
不支持径向渐变。唯一的方法是继承CALayer
并自己完成绘图。
我已经回答了问题here,但由于这是一个较旧的问题,另一个可能是重复的。
答案 1 :(得分:0)
您无法初始化径向CAGradientLayer,但是您可以轻松地将当前图层样式修改为径向
layer.type = .radial
答案 2 :(得分:0)
到2019年,可接受的答案是错误的,您可以通过将其type属性设置为.radial来进行径向渐变。 重要的是,起点是椭圆或圆形中心的坐标,终点是外部椭圆或圆形的尺寸。所有坐标必须以基于单位的形式表示(aka 1.0为100%)。
下面的Swift示例将绘制一个椭圆,该椭圆位于框架的中心,其半径设置为与框架匹配:
> df[,columns_sampled]
X9 X4
1 1 1
2 1 1
3 0 1
4 0 1
5 0 0
6 1 1
7 1 1
8 1 0
9 0 0
10 1 1
例如,上面的示例可用于向视图添加小插图(请参见图片)。
请注意,半径可以大于框架,并且可以通过指定大于1或小于-1的坐标来将中心放置在框架之外。