垂直颜色渐变

12

水平渐变效果很好。有没有办法从水平渐变中获得垂直颜色渐变?我看到了一个相关的问题,他们通过旋转帧来实现这一点。

是否有更简单的方法来实现垂直渐变?

2个回答

79

默认情况下,startPointendPoint会使渐变从上到下显示颜色(在我看来是一个垂直渐变)。如果您想让渐变从左到右显示(同样在我的想法中这是一个水平渐变),请在CAGradientLayer上使用以下代码:

  [gradientLayer setStartPoint:CGPointMake(0.0, 0.5)];
  [gradientLayer setEndPoint:CGPointMake(1.0, 0.5)];

不必使用3D变换。


2

将它旋转90º怎么样?

编辑 从您的评论中判断,似乎您是通过CAGradientLayer来实现这个功能的。 CAGradientLayerCALayer的子类,拥有一个transform属性。 这个transform属性需要一个CATransform3D,它是一种表示应用于图层的某种线性变换(如缩放、平移或旋转)的结构体。

所以你只需要创建一个旋转的CATransform3D,并将其设置为你的CAGradientLayertransform属性。

您也可以通过调整startPointendPoint来使其工作(这可能会更简单)。


我使用了gradient.startpoint和gradient.endpoint来进行旋转...这样可以吗...?我需要180度的旋转...我应该使用与上述相同的逻辑吗? - darshan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接