Можно ли получить UIImage из UIView, созданного с помощью snapshotViewAfterScreenUpdates
?
UIView, возвращенный из snapshotViewAfterScreenUpdates
, отлично выглядит при добавлении в качестве подвью, но следующее создает черное изображение:
UIView *snapshotView = [someView snapshotViewAfterScreenUpdates:YES];
UIImage *snapshotImage = [self imageFromView:snapshotView];
- (UIImage *)imageFromView:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, YES, 0.0);
// [view.layer renderInContext:UIGraphicsGetCurrentContext()]; // <- same result...
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
Конечно, можно получить изображение, не полагаясь на snapshotViewAfterScreenUpdates
:
UIImage *snapshotImage = [self imageFromView:someView];
К сожалению, при захвате сложного вида drawViewHierarchyInRect
не может соответствовать скорости snapshotViewAfterScreenUpdates
. Я надеялся, что быстрее получить UIImage
из представления, созданного snapshotViewAfterScreenUpdates
, возможно ли это?