12

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

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

4

2 回答 2

79

默认的startPointendPoint将使渐变从上到下显示您的颜色(在我看来是垂直渐变)。如果您希望渐变从左到右显示(在我看来,这是一个水平渐变),请在您的CAGradientLayer上使用此代码:

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

不需要 3D 变换。

于 2010-08-17T07:21:15.600 回答
2

旋转 90º 怎么样?

编辑 从您的评论来看,您似乎是通过CAGradientLayer. CAGradientLayer是 的子类CALayer,它有一个transform属性。此transform属性采用 a CATransform3D,它是一个结构,表示要应用于图层的某种线性变换(例如缩放、平移或旋转)。

因此,实际上您只需要进行旋转CATransform3D并将其设置transformCAGradientLayer.

您也可以通过摆弄startPointand来完成这项工作endPoint(实际上可能更简单)。

于 2010-08-16T06:01:58.997 回答