J'ai un UIScrollView decendent qui implémente un takeScreenshot méthode qui ressemble à ceci:
-(void)takeScreenshot {
CGRect contextRect = CGRectMake(0, 0, 768, 1004);
UIGraphicsBeginImageContext(contextRect.size);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// do something with the viewImage here.
}
En fait cela se déplace vers le haut de défilement de la vue, et prend une capture d'écran de la zone visible. Il fonctionne très bien lorsque l'iPad est orientée vers le portrait, mais quand il est dans le paysage du bas de l'image est coupée (comme la hauteur de la zone visible est seulement 748, pas 1004).
Est-il possible d'obtenir un instantané de l'UIScrollView, y compris les zones qui ne sont pas sur l'écran? Ou ai-je besoin pour faire défiler l'affichage vers le bas, prendre une deuxième photo et de les coudre ensemble?