A UIImageVIew
(imageView
) viene aggiunto al self.view
, catturando la vista con l'album funziona perfettamente:renderInContext non cattura subviews ruotati
CGSize size = CGSizeMake(self.view.frame.size.height, self.view.frame.size.width);
UIGraphicsBeginImageContext(size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);
Tuttavia, se il imageView
visualizzazione secondaria viene ruotata di:
[CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
La cattura di self.view
non riflette ancora la rotazione. La sottoview imageView
è come se non fosse ruotata.
Come rendere renderInContext
funziona con le visualizzazioni secondarie ruotate da CABasicAnimation
?
UPDATE:
Attenzione: L'CALayer/-renderInContext: metodo non implementare il modello completo composizione Core Animation. Il codice fornito di seguito sarà in grado di risolvere la maggior parte delle situazioni, ma ci sono alcune cose che il metodo CALayer/-renderInContext: non esegue correttamente il rendering, quindi è possibile contattare l'Assistenza tecnica degli sviluppatori per le soluzioni alternative al .
ufficiale di Apple tecnico Q & Un QA1703 suggerito di contattare l'Assistenza tecnica sviluppatori per le richieste di soluzione.
Esiste già una soluzione?
Come _rotate il context_ grafica che può essere riconosciuto di 'renderInContext'? – ohho
'CGContextRotateCTM (context, angle)' –
Sto cercando un'acquisizione dello schermo di livello superiore (come la cattura dello schermo combo tasto di accensione/spegnimento). Dato che ci sono molte sottoview all'interno di subviews che sono ruotate da 'CABasicAnimation' ... – ohho