Einstellen eines CGContext Transparenten Hintergrunds
Ich bin immer noch Schwierigkeiten mit dem zeichnen einer Linie mit CGContext. Habe ich eigentlich gehen, um Linie zu zeichnen, aber jetzt muss ich den hintergrund des "Rect" zu werden transparent, so dass der vorhandene hintergrund zeigt thru. Hier mein test-code:
(void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor);
CGContextSetAlpha(context,0.0);
CGContextFillRect(context, rect);
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);
CGContextSetLineWidth(context, 5.0);
CGContextMoveToPoint(context, 100.0,0.0);
CGContextAddLineToPoint(context,100.0, 100.0);
CGContextStrokePath(context);
}
Irgendwelche Ideen?
InformationsquelleAutor der Frage Jim B | 2010-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach
UIGraphicsGetCurrentContext()
nennenCGContextClearRect(context,rect)
Bearbeiten:
Okay, habe es.
Ihre benutzerdefinierte Ansicht mit der Zeile sollte Folgendes haben:
Meinem test verwendet dies als eine sehr grundlegende UIViewController:
InformationsquelleAutor der Antwort David Kanarek
Einfach:
InformationsquelleAutor der Antwort ZGl6YXNt
Ich habe das gleiche problem, dann find ich es ist.
Ich überschreiben Sie die init-Methode ist
-(id)initWithFrame:(CGRect)rect.
In dieser Methode
self.background = [UIColor clearColor];
aber ich verwenden Sie diese Ansicht, in der xib-Datei !!! Aufrufen, werden die init-Methode ist
So überschreiben Sie alle die Methode init und setup BackgroundColor funktioniert OK.
InformationsquelleAutor der Antwort en-菜鸟..
Dies ist was für mich gearbeitet mit einem UIImage hatte, die Sie manuell Hinzugefügt haben, verwenden InterfaceBuilder.
David Kanarek Antwort funktioniert nur, wenn Sie manuell erstellen Sie Ihre eigenen UIImageView. Wenn Sie erstellt haben, eine UIView und manuell Hinzugefügt, es über den Interface Builder, dann brauchst du einen anderen Ansatz, wie dieser Aufruf der Methode initWithCoder statt.
InformationsquelleAutor der Antwort Patrick Collins
Wenn der mitgelieferte Rahmen ist ein Fenster-oder bitmap-Kontext, Quarz effektiv löscht das Rechteck. Für weitere Kontext-Typen, Quarz füllt das Rechteck in einem Gerät-abhängigen Art und Weise. Allerdings sollten Sie diese Funktion nicht verwenden, in anderen Kontexten als Fenster-oder bitmap-Kontexten.
InformationsquelleAutor der Antwort Codrut
können Sie erstellen ein Bild-Rahmen mit diesem code:
den Schlüssel kCGImageAlphaPremultipliedLast.
InformationsquelleAutor der Antwort fluke
Probleme beim Verständnis der Frage hier, aber wenn Sie nicht haben einen "hintergrund" UIView zeigen durch ein "top" - Ansicht, in die Sie zeichnen, eine Lösung ist
topView.backgroundColor = [UIColor clearColor];
ich hatte (glaube ich) das gleiche problem und dieses gelöst für mich.InformationsquelleAutor der Antwort oflannabhra
Init einen Zusammenhang mit der
opaque == false
Swift 3undurchsichtig
InformationsquelleAutor der Antwort onmyway133