Comment changer CAGradientLayer couleur des points?
Droit maintenant, j'ai une GA calque de Dégradé où j'ai mis les couleurs, mais j'aimerais définir la couleur du point (au lieu d'en haut au centre, en haut à gauche) et le bas (au lieu de au centre en bas en bas à droite) juste pour changer un peu les choses. Pensées? Ci-dessous le code que j'ai eu jusqu'à présent...j'ai inclus de base de l'animation parce que je suis d'animation entre les couleurs.
- (id)init {
self = [super init];
UIView *gradientView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.w, self.h)];
[self addSubview:gradientView];
[self sendSubviewToBack:gradientView];
topColor = [UIColor colorWithRed:0.012 green:0.012 blue:0.012 alpha:1];
bottomColor = [UIColor colorWithRed:1.000 green:0.765 blue:0.235 alpha:1];
gradient = [CAGradientLayer layer];
gradient.frame = gradientView.frame;
gradient.colors = [NSArray arrayWithObjects:(id)topColor.CGColor, (id)bottomColor.CGColor, nil];
gradient.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0f], [NSNumber numberWithFloat:0.7], nil];
[gradientView.layer addSublayer:gradient];
[self performSelector:@selector(animateColors) withObject:self afterDelay:2.0];
currentColorCount = 1;
return self;
}
Sur la droite (Ce que j'ai) sur la gauche (ce que j'aimerais)
- ne pas vous dire: Sur la gauche (Ce que j'ai) sur la droite (ce que je voudrais), depuis le début par défaut est de 0.5, 0.0 et de fin par défaut est de 0.5, 1.0
Vous devez vous connecter pour publier un commentaire.
La
startPoint
etendPoint
propriétés d'unCAGradientLayer
sont définies dans l'unité “système de coordonnées”. Dans l'unité de système de coordonnées:(0,0)
correspond à la plus petite de coordonnées de la couche limites rectangle, qui sur iOS est à son coin supérieur gauche, à moins que la couche a été transformé;(1,1)
correspond à la plus grande coordonnées de la couche limites rectangle, qui sur iOS est son coin inférieur droit, sauf si la couche n'a pas été transformé.Ainsi à l'organisation de votre dégradé la façon dont vous voulez que devrait être cette simple:
CAGradientLayer
's fichier d'en-tête en disant que[0,0] is the bottom-left corner of the layer, [1,1] is the top-right corner
?