Ho utilizzato questo metodo per convertire un UIView
in UIImage
. vale a dire schermo snapshot di una visione -Cattura UIView come UIImage
@interface UIView(Extended)
- (UIImage *) imageByRenderingView;
@end
@implementation UIView(Extended)
- (UIImage *)imageByRenderingView
{
UIGraphicsBeginImageContext(self.bounds.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return resultingImage;
}
@end
Per usarlo, faccio questo -
UIImage *currImage = [self.view imageByRenderingView];
Questo dà la rappresentazione dell'immagine di tutto il UIView
. Ora voglio 2 immagini, una è della metà superiore del UIView
e l'altra è la metà inferiore. Come lo faccio?
Si noti che (dalla mia esperienza) 'renderInContext:' può essere piuttosto costoso. Lo sto facendo in un 'cellForRowAtIndexPath:' (non avendo, in questo momento, un'altra opzione) e questo ovviamente significa ritardo. –