Sto cercando di caricare una vista da un pennino, configurarlo, e scattare un'istantanea di esso, senza aggiungere allo schermo:Prendere un'istantanea di vista senza aggiungerlo alla schermata
+ (void)composeFromNibWithImage:(UIImage*)catImage completion:(CompletionBlock)completion {
NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"CatNib" owner:nil options:nil];
CatView *catView = [nibContents firstObject];
//here, catView is the correct size from the nib, but is blank if inspected with the debugger
catView.catImageView.image = catImage;
catView.furButton.selected = YES;
UIImage *composite = [UIImage snapshot:catView];
completion(composite);
}
dove istantanea è il tipico:
+ (UIImage *)snapshot:(UIView *)view
{
UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.0);
[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
Tuttavia, sia catView e composito sono dimensionate correttamente ma vuota come io passo attraverso il codice. Come posso creare un UIImage da una vista caricata da un pennino, senza aggiungere la vista allo schermo?
ero consapevole che avrei potuto fare questo con l'aggiunta in qualche modo la fine di una parte invisibile dello schermo. In realtà sto chiamando questo codice da una sottoclasse NSObject che non ha un riferimento alla vista principale, quindi speravo che ci fosse un modo per caricare il pennino, personalizzarlo e farlo uno snapshot, ma non credo. – soleil