垂直颜色渐变

时间:2010-08-16 05:43:28

标签: iphone cocoa cocoa-touch core-animation iphone-sdk-3.2

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

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

2 个答案:

答案 0 :(得分:77)

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

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

不需要3D变换。

答案 1 :(得分:2)

如何将它旋转90º?

编辑从您的评论判断,您似乎是通过CAGradientLayer执行此操作。 CAGradientLayerCALayer的子类,具有transform属性。此transform属性采用CATransform3D,这是一个结构,表示要应用于图层的某种线性变换(例如缩放,平移或旋转)。

所以你真的需要make a rotational CATransform3D并将其设置为transform的{​​{1}}属性。

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