垂直颜色渐变

dar*_*han 12 iphone cocoa cocoa-touch core-animation iphone-sdk-3.2

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

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

Mat*_*ong 78

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

  [gradientLayer setStartPoint:CGPointMake(0.0, 0.5)];
  [gradientLayer setEndPoint:CGPointMake(1.0, 0.5)];
Run Code Online (Sandbox Code Playgroud)

不需要3D变换.


Dav*_*ong 2

将其旋转 90\xc2\xba 怎么样?

\n\n

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

\n\n

所以实际上你只需要进行旋转CATransform3D并将其设置为transform你的属性CAGradientLayer.

\n\n

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

\n