水平渐变效果很好。有没有办法从水平渐变中获得垂直颜色渐变? 我已经看到了一个相关的问题,他们通过旋转框架来做到这一点。
有没有更简单的方法来实现垂直渐变?
答案 0 :(得分:77)
默认 startPoint 和 endPoint 会让渐变显示从上到下的颜色(在我看来是垂直渐变) 。如果您希望渐变从左到右显示(在我看来这是一个水平渐变),请在 CAGradientLayer 上使用此代码:
[gradientLayer setStartPoint:CGPointMake(0.0, 0.5)];
[gradientLayer setEndPoint:CGPointMake(1.0, 0.5)];
不需要3D变换。
答案 1 :(得分:2)
如何将它旋转90º?
编辑从您的评论判断,您似乎是通过CAGradientLayer
执行此操作。 CAGradientLayer
是CALayer
的子类,具有transform
属性。此transform
属性采用CATransform3D
,这是一个结构,表示要应用于图层的某种线性变换(例如缩放,平移或旋转)。
所以你真的需要make a rotational CATransform3D
并将其设置为transform
的{{1}}属性。
你也可以通过摆弄CAGradientLayer
和startPoint
(实际上可能更简单)来完成这项工作。