Ich versuche, eine UIView-Hierarchie in einen CGContext oder letztlich ein UIImage zu rendern. Einige der untergeordneten Ansichten haben 3D-Transformationen, die renderInContext:
zusammen mit Schatten und einigen anderen CALayer-Eigenschaften ignoriert.
Aus CALayer.h:
/*
* WARNING: currently this method does not implement the full
* CoreAnimation composition model, use with caution. */
- (void)renderInContext:(CGContextRef)ctx;
Ich habe mehrere Varianten ausprobiert, nachdem ein Aufruf an UIGraphicsBeginImageContext
.
[self drawRect:[self bounds]];
[self.layer.delegate drawLayer:self.layer inContext:UIGraphicsGetCurrentContext()];
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
[self.layer display];
Im besten Fall wird die Ansichtshierarchie ohne 3D-Transformationen gerendert. Im schlimmsten Fall ist das Bild leer. Ich möchte am Ende einen gültigen Alphakanal im Bild haben, daher funktioniert eine Bildschirmaufnahme nicht ganz.
Gibt es eine Möglichkeit, eine UIView-Hierarchie unter Beibehaltung aller Transformationen und Ebeneneigenschaften zu rendern?
Wenn die Lösung die rekursive Iteration der Ansichtshierarchie, das separate Rendern jeder Ansicht als Bild und die Anwendung aller Transformationen und Eigenschaften in einem Kompositionsschritt für jede übergeordnete Ansicht beinhaltet, wie werden dann 3D-Transformationen angewendet?
0 Stimmen
Haben Sie mit diesem Problem jemals etwas erreicht?