Ich habe einen CAGradientLayer am unteren Rand dieser kleinen Detailansicht eingefügt, die am unteren Rand der App angezeigt wird. Wie Sie sehen können, habe ich die Farben von Weiß auf Klar eingestellt, aber es zeigt sich diese seltsame Grautönung. Irgendwelche Ideen?
// Set up detail view frame and gradient
[self.detailView setFrame:CGRectMake(0, 568, 320, 55)];
CAGradientLayer *layer = [CAGradientLayer layer];
layer.frame = self.detailView.bounds;
layer.colors = [NSArray arrayWithObjects:(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor, nil];
layer.startPoint = CGPointMake(1.0f, 0.7f);
layer.endPoint = CGPointMake(1.0f, 0.0f);
[self.detailView.layer insertSublayer:layer atIndex:0];
Hier ist die problematische Ansicht:
Antworten:
clearColor hat einen schwarzen Farbkanal mit einem Alpha von 0, also musste ich verwenden
und es funktioniert gut.
quelle
In Swift Das hat bei mir funktioniert,
quelle
Es ist erwähnenswert, dass jede andere Farbe so funktioniert ... mit einer Kombination der beiden obigen Antworten ....
Ziel c
Swift 3
quelle
Swift 3 Syntax,
quelle
Die obigen Antworten wie:
und
sollte funktionieren, um einen Teil Ihres Verlaufs klar zu machen (und nicht das Grau, auf das sich OP bezieht). Wenn Sie jedoch immer noch ein transparentes Weiß sehen, wenn Sie eine klare Farbe sehen sollten, stellen Sie sicher, dass auch
backgroundColor
die Ansicht, auf die Sie den Verlauf anwenden, klar ist.Standardmäßig ist die Hintergrundfarbe dieser Ansicht wahrscheinlich weiß (oder eine dunkle Farbe, wenn sich das Gerät im dunklen Modus befindet). Wenn Sie also den Farbverlauf anwenden, wird der klare Teil davon durch die Ansicht
backgroundColor
selbst "blockiert" . Setzen Sie das auf klar und Sie sollten bereit sein zu gehen.quelle
Wie viele habe ich trotz der Verwendung eines klaren Weiß immer noch eine graue Farbe.
Also änderte ich meinen Ansatz und entschied mich für eine Maske anstatt für einen Farbverlauf. Das Endergebnis ist das gleiche, na ja, besser, da dieses in allen Situationen funktioniert, nicht nur, wenn Sie einen geeigneten Hintergrund haben.
Ich habe diesen Code nicht mit IB ausprobiert, aber hoffentlich funktioniert er auch. Einfach einstellen
backgroundColor
und los geht's.quelle
Es ist erwähnenswert, dass dieser Ansatz auch mit den neuen Systemfarben funktioniert, um Weiß / Schwarz-Verläufe (oder wirklich jede Farbe mit hellem / dunklem Erscheinungsbild) basierend auf dem Hell / Dunkel-Modus in iOS 13 zu verarbeiten:
quelle