У меня есть UIScrollView decendent, который реализует метод takeScreenshot, который выглядит следующим образом:
-(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.
}
В основном это перемещается в верхнюю часть прокрутки и снимает снимок экрана с видимой области. Он отлично работает, когда iPad ориентирован на портрет, но когда он в ландшафте, снизу снижается изображение (поскольку высота видимой области составляет всего 748, а не 1004).
Можно ли получить снимок UIScrollView, включая области, не отображаемые на экране? Или мне нужно прокрутить представление вниз, сделать вторую фотографию и сшить их вместе?