【问题标题】:vertical color gradient垂直颜色渐变
【发布时间】:2010-08-16 05:43:27
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    不需要 3D 变换。

    【讨论】:

      【解决方案2】:

      旋转 90º 怎么样?

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

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

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

      【讨论】:

      • 我使用 gradient.startpoint 和 gradient.endpoint 进行旋转...这样可以吗...?我需要旋转 180 度。我应该使用与上面相同的逻辑吗?
      猜你喜欢
      • 2018-06-20
      • 2017-11-12
      • 1970-01-01
      • 2019-08-22
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      相关资源
      最近更新 更多