вертикальный градиент цвета - PullRequest
12 голосов
/ 16 августа 2010

Горизонтальный градиент работает нормально. Есть ли способ получить вертикальный градиент цвета из горизонтального градиента? Я видел связанный вопрос относительно этого, где они сделали это, вращая кадры.

Есть ли более простой способ достижения вертикального градиента?

Ответы [ 2 ]

77 голосов
/ 17 августа 2010

По умолчанию startPoint и endPoint будет иметь градиент, отображающий ваши цвета сверху вниз (что, на мой взгляд, вертикальный градиент). Если вы хотите, чтобы градиент отображался слева направо (опять же, на мой взгляд, это горизонтальный градиент), используйте этот код на вашем CAGradientLayer :

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

3D-преобразование не требуется.

2 голосов
/ 16 августа 2010

Как насчет поворота на 90º?

edit Судя по вашему комментарию, кажется, что вы делаете это через CAGradientLayer. CAGradientLayer является подклассом CALayer, который имеет свойство transform. Это свойство transform принимает CATransform3D, то есть структуру, которая представляет собой некое линейное преобразование, которое будет применено к слою (например, масштабирование, перемещение или вращение).

Так что на самом деле вам просто нужно сделать вращательный CATransform3D и установить его как свойство transform вашего CAGradientLayer.

Возможно, вы могли бы также сделать эту работу, поиграв с startPoint и endPoint (что на самом деле, вероятно, было бы проще).

...