Comment changer les points de couleur CAGradientLayer?

En ce moment j'ai un calque GA Gradient où j'ai défini les colors mais je voudrais définir le sharepoint couleur (au lieu du centre supérieur, en haut à gauche) et le bas à (au lieu du centre inférieur en bas à droite ) juste pour changer les choses un peu. Pensées? Voici le code que j'ai jusqu'ici … J'ai inclus l'animation de base parce que je suis l'animation entre les colors.

- (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 je voudrais)

Sur la droite (Ce que j'ai) sur la gauche (ce que je voudrais)

    Les propriétés startPoint et endPoint d'une CAGradientLayer sont définies dans le "système de coordonnées d'unité". Dans le système de coordonnées de l'unité:

    • (0,0) correspond aux plus petites coordonnées du rectangle des limites de la couche, qui sur iOS est son coin supérieur gauche sauf si la couche a été transformée;
    • (1,1) correspond aux plus grandes coordonnées du rectangle des limites de la couche, qui sur iOS est son coin inférieur droit sauf si la couche a été transformée.

    Ainsi, organiser votre dégradé comme vous le souhaitez devrait être aussi simple:

     gradient.startPoint = CGPointZero; gradient.endPoint = CGPointMake(1, 1);