Подтвердить что ты не робот

Вертикальный градиент цвета

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

Как насчет вращения 90 °?

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

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

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