UIImageVIew
(imageView
) dodaje się do self.view
, przechwytywanie widok do albumu działa perfekcyjnie:renderInContext nie uchwycić obróconych subviews
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);
Jednakże, jeśli imageView
subview jest obracana przez:
[CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
Przechwytywanie self.view
ponownie nie odzwierciedla rotacji. Wypis imageView
jest jakby nie obrócony.
Jak zrobić renderInContext
współpracuje z subviewsami obróconymi o CABasicAnimation
?
UPDATE:
Ostrzeżenie: CALayer/-renderInContext: Metoda nie implementuje pełny skład modelu animacji rdzenia. Kod podany poniżej będzie w stanie rozwiązać większość sytuacji, ale są rzeczy, które nie są poprawnie renderowane w metodzie CALayer/-renderInContext:, więc możesz skontaktować się z Pomocą techniczną dla programistów w celu uzyskania żądań rozwiązania.
Dziennik Jabłko techniczne Q & QA1703 zasugerował u dewelopera wsparcie techniczne dla wniosków obejścia.
Czy istnieje obejście, które już istnieje?
Jak _rotate się context_ graficzny, który może być uznany według 'renderInContext'? – ohho
'CGContextRotateCTM (kontekst, kąt)' –
Szukam wyższego poziomu przechwytywania ekranu (takiego jak przechwytywanie ekranu klawisza power-home). Ponieważ istnieje wiele subviews wewnętrznych, subviews, które są obracane przez 'CABasicAnimation' ... – ohho