2010-08-16 99 views
12

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

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

回答

2

将它旋转90º如何?

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

所以真的你只需要make a rotational CATransform3D并将其设置为CAGradientLayertransform属性。

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

+0

我用gradient.startpoint和gradient.endpoint旋转...这是好的...? 我需要180度旋转..我应该使用与上面相同的逻辑。 – darshan 2010-08-16 06:46:27

+0

@darshan编辑答案 – 2010-08-16 07:04:16

76

默认的startPoint端点将有梯度从顶部显示你的颜色,底部(这在我心目中是一个垂直梯度)。如果你想在梯度从左至右显示(再次在我心中,这是一个水平梯度),使用此代码对你CAGradientLayer

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

一个3D转换是不必要的。

+0

不错的一个家伙+1 – Warewolf 2013-07-15 15:39:23