Ich füge eine CAGradientLayer
zu einer Ansicht hinzu. Wenn die Ansicht automatisch skaliert wird (z. B. nach einer Drehung), wird die Farbverlaufsebene nicht geändert. Kann der Gradient auf die gleiche Größe wie die Ansicht eingestellt werden? Beachten Sie auch, dass ich automatische Layout-Einschränkungen in der Ansicht verwende.Wie ändert man die Größe einer CAGradientLayer nach der Rotation?
Hier ist, was ich tue:
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = CGRectMake(0.0, 0.0, frame.size.width, frame.size.height);
gradientLayer.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:255.0/255.0f green:255.0/255.0f blue:255.0/255.0f alpha:1.0f] CGColor],
(id)[[UIColor colorWithRed:233.0/255.0f green:233.0/255.0f blue:233.0/255.0f alpha:1.0f] CGColor], nil];
[self.layer insertSublayer:gradientLayer atIndex:0];
mögliche Duplikate von [CALayer autoresizingMask nicht für iOS SDK?] (Http://StackOverflow.com/questions/8600826/Calayer-AutoresizingMask-not-for-Iios-SDK) – CodaFi
@CodaFi Etwas andere Frage. Auch wenn es eine akzeptierte Antwort für diese Frage gibt, ist sie für diesen Fall scheinbar nutzlos. – memmons
Sie haben Recht, diese Antwort ist wertlos. Überschreiben Sie "-layoutSubviews" und weisen Sie Ihre Bilder dort zu. – CodaFi