Transparenten hintergrund UIView drawRect Kreis
Ich bin zeichnen Sie einen Kreis mit einer weißen Kontur und eine Farbe angegeben, indem eine Eigenschaft mit diesem code:
- (void)drawRect:(CGRect)rect {
CGContextRef contextRef = UIGraphicsGetCurrentContext();
CGContextClearRect(contextRef, rect);
//Set the border width
CGContextSetLineWidth(contextRef, 1.5);
//Set the circle fill color to GREEN
CGFloat red, green, blue, alpha;
BOOL didConvert = [_routeColor getRed:&red green:&green blue:&blue alpha:&alpha];
CGContextSetRGBFillColor(contextRef, red, green, blue, 1.0);
//Set the cicle border color to BLUE
CGContextSetRGBStrokeColor(contextRef, 255.0, 255.0, 255.0, 1.0);
//Fill the circle with the fill color
CGContextFillEllipseInRect(contextRef, rect);
//Draw the circle border
CGContextStrokeEllipseInRect(contextRef, rect);
}
Dem Bild, das ich wieder wie folgt aussieht:
Wie kann ich entfernen Sie die schwarzen?
- Vorschlag - loszuwerden, die Anrufe zu
CGContextSetRGBFillColor
undCGContextSetRGBStrokeColor
. Führen Sie stattdessen folgende Schritte:[_routeColor setFill]; [[UIColor whiteColor] setStroke];
. Und FYI - Farbe-Werte müssen im Bereich 0.0 - 1.0, so dass all Ihre 255.0-Werte 1.0.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Legen Sie die
backgroundColor
der Ansicht, die[UIColor clearColor]
.Beachten Sie, dass die Einstellung der Hintergrundfarbe muss nur einmal durchgeführt werden, wenn die Ansicht erstellt wird.
init
Methode, nicht indrawRect:
.Brauchte ich diese. Wenn ich dies, gearbeitet.
Dieser arbeitete für mich auf Swift 3:
Müssen Sie die Hintergrundfarbe zu clearColor in init.
Hier ist das Beispiel