【发布时间】:2010-08-16 05:43:27
【问题描述】:
水平渐变效果很好。有没有办法从水平渐变中获得垂直颜色渐变? 我已经看到了一个相关的问题,他们通过旋转框架来做到这一点。
有没有更简单的方法来实现垂直渐变?
【问题讨论】:
标签: iphone cocoa cocoa-touch core-animation iphone-sdk-3.2
水平渐变效果很好。有没有办法从水平渐变中获得垂直颜色渐变? 我已经看到了一个相关的问题,他们通过旋转框架来做到这一点。
有没有更简单的方法来实现垂直渐变?
【问题讨论】:
标签: iphone cocoa cocoa-touch core-animation iphone-sdk-3.2
默认的 startPoint 和 endPoint 会让渐变从上到下显示你的颜色(在我看来这是一个 vertical 渐变) .如果您希望渐变从左到右显示(在我看来,这是一个 水平 渐变),请在您的 CAGradientLayer 上使用此代码:
[gradientLayer setStartPoint:CGPointMake(0.0, 0.5)];
[gradientLayer setEndPoint:CGPointMake(1.0, 0.5)];
不需要 3D 变换。
【讨论】:
旋转 90º 怎么样?
edit 从您的评论来看,您似乎是通过CAGradientLayer 执行此操作的。 CAGradientLayer 是CALayer 的子类,它具有transform 属性。这个transform 属性采用CATransform3D,它是一个结构,表示要应用于层的某种线性变换(例如缩放、平移或旋转)。
所以实际上你只需要make a rotational CATransform3D 并将其设置为CAGradientLayer 的transform 属性。
您也可以通过摆弄startPoint 和endPoint 来完成这项工作(实际上可能更简单)。
【讨论】: