Wie ändere ich CAGradientLayer Farbpunkte?
Rechts jetzt habe ich einen GA-Gradienten Schicht, wo habe ich die Farben, aber ich möchte, um die Farbe zeigen (anstelle von oben in der Mitte, oben Links) und unten (statt von unten Mitte bis rechts unten), nur um Dinge ändern sich ein wenig. Gedanken? Unten ist der code, den habe ich so weit...ich eingeschlossen, core animation, da bin ich animation zwischen den Farben.
- (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;
}
Auf der rechten Seite (Was ich habe) auf der linken (was ich möchte)
InformationsquelleAutor der Frage | 2013-12-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
startPoint
undendPoint
Eigenschaften einesCAGradientLayer
sind definiert in den "Einheits-Koordinatensystem". In der Einheit Koordinatensystem:(0,0)
entspricht der kleinsten Koordinaten der Ebene bounds-Rechteck, das auf iOS ist in der oberen linken Ecke, es sei denn, die Ebene verwandelt wurde;(1,1)
entspricht der größten Koordinaten der Ebene bounds-Rechteck, das auf iOS ist der unteren rechten Ecke, es sei denn, die Ebene verwandelt wurde.Damit arrangieren Ihr Verlauf, wie Sie wollen, sollten so einfach sein:
InformationsquelleAutor der Antwort rob mayoff