Ungültiger Kontext Fehler beim zeichnen eines UIImage
Ich versuche zu zeichnen, UIImage, um den Kontext meiner UIView. Ich habe diesen code mit dem Kontext Zeug kommentiert-in und-out ...
- (void)drawRect:(CGRect)rect
{
//UIGraphicsBeginImageContextWithOptions(rect.size,YES,[[UIScreen mainScreen] scale]);
//UIGraphicsBeginImageContext(rect.size);
UIImage *newImage = [UIImage imageNamed:@"character_1_0001.png"];
//[newImage drawAtPoint:CGPointMake(200, 200)];
[newImage drawInRect:rect];
//UIGraphicsEndImageContext();
}
Wie ich es verstehe, sollte ich nicht brauchen, um das Bild Rahmen, dies zu tun und zwar ohne Sie sehe ich das Bild, in der Ansicht, aber auch ich bekomme diese Fehlermeldung in der log ...
<Error>: CGContextSaveGState: invalid context 0x0
Wenn ich die Auskommentierung der UIGraphicsBeginImageContext Linien ich bekomme gar nichts gezogen und keine Fehler.
Benötige ich, um die Standard-Grafik-Kontext und erklären, dass diese irgendwie?
Brauche ich zum zeichnen des Bildes, da möchte ich hinzufügen, dass es auf den Kontext und kann sich nicht einfach generieren eine Last von UIImageView Objekte.
- Sie müssen einige andere code anderswo, der ruft CGContextSaveGState? Sie sagen, dass nur die
UIImage=
unddrawInRect
Linien, erhalten Sie diese Fehlermeldung? - Wenn ich kommentieren Sie die Kontext-Linien in diesem code, den ich NICHT erhalte eine Fehlermeldung, aber ich sehe nichts gezogen, meiner Ansicht nach. Wie es ist, sehe ich mein Bild, aber die Kontext-Fehler. Ist sehr seltsam.
- Und Sie don ' T call CGContextSaveGState sich irgendwo anders?
- NÖ. Ich Teste das jetzt. Versuchen Zeichnung nur einige text.
- Auch Sie sind nicht gefordert
drawRect
direkt, sind Sie? Wenn dem so ist kann es nicht sein, einen gültigen Kontext, wenn Sie Zeichen, die Ihnen geben könnte, dass Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es klingt wie Sie anrufen
drawRect:
direkt. Es geht also immer einmal aufgerufen, von Ihrem Ruf, und einmal von der echten Zeichnung Schleife.drawRect:
, und das eigentliche zeichnen erfolgt in der echtendrawRect:
so sehen Sie Ihr Bild.Nicht nennen
drawRect:
direkt. Rufen SiesetNeedsDisplay
unddrawRect:
genannt werden für Sie an der entsprechenden Stelle.Entdeckte ich, was passiert war. Die ViewController-host von meine eigene UIView war instanziieren eines CALayer-Objekt. Dies war eine alt-code wurde bisher nicht genutzt, wie die Zeichnung layer für ein bitmap aus einem AVCaptureSession, dass ich verwende für die Erstellung meiner Bild.
Ich bin jetzt nicht mit dem CALayer und bin stattdessen nur zeichnen eine Scheibe von jedem frame des Videos auf die Standard-Grafik-Kontext, in meiner Sicht.
Aus irgendeinem Grund die Instanziierung dieser CALayer war, die den Konflikt in den Kontext.
Nun ist es nicht verwendet wird, brauche ich nur den folgenden code verwenden, um zu zeichnen das Bild ...
Ich jetzt nur tun die gleiche Sache mit einem Bild, dass ich pass auf wie ein CGImageRef und passen Sie die rect ... hoffentlich.