12 votes

dégradé de couleurs vertical

Le dégradé horizontal fonctionne bien. Existe-t-il un moyen d'obtenir un dégradé de couleur vertical à partir d'un dégradé horizontal ? J'ai vu une question connexe à ce sujet où l'on a fait pivoter les cadres.

Existe-t-il un moyen plus simple d'obtenir un dégradé vertical ?

79voto

Matt Long Points 16701

La valeur par défaut point de départ y point final Le dégradé afficherait vos couleurs de haut en bas (ce qui, à mon sens, est une vertical ). Si vous souhaitez que le dégradé s'affiche de gauche à droite (encore une fois, dans mon esprit, il s'agit d'une horizontal gradient), utilisez ce code sur votre CAGradientLayer :

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

Une transformation en 3D n'est pas nécessaire.

2voto

Dave DeLong Points 156978

Pourquoi ne pas le faire pivoter de 90º ?

éditer A en juger par votre commentaire, il semble que vous le fassiez par l'intermédiaire de CAGradientLayer . CAGradientLayer est une sous-classe de CALayer qui a une transform propriété. Cette transform prend une valeur CATransform3D qui est une structure représentant une sorte de transformation linéaire à appliquer à la couche (comme une mise à l'échelle, une translation ou une rotation).

Il suffit donc de effectuer une rotation CATransform3D et de le définir comme transform propriété de votre CAGradientLayer .

Vous pouvez probablement aussi faire fonctionner ce système en jouant avec le paramètre startPoint y endPoint (ce qui serait probablement plus simple).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X