Como tirar screenshots da área visível do UIScrollView?

Como faço para tirar uma captura de tela 1: 1 da área visível do UIScrollView? O conteúdo pode ser maior ou menor do que os limites do UIScrollView, bem como meio-escondido (eu implementei rolagem personalizada para conteúdo menor, por isso não está no canto superior esquerdo). Consegui o resultado desejado no simulador, mas não no próprio dispositivo:

-(UIImage *)imageFromCombinedContext:(UIView *)background {
      UIImage *image;
      CGRect vis = background.bounds;
      CGSize size = vis.size;
      UIGraphicsBeginImageContext(size);
      [background.layer affineTransform];
      [background.layer renderInontext:UIGraphicsGetCurrentContext()];
      image = UIGraphicsGetImageFromCurrentImageContext();
      UIGraphicsEndImageContext();
      CGImageRef imref = CGImageCreateWithImageInRect([image CGImage], vis);
      image = [UIImage imageWithCGImage:imref];
      CGImageRelease(imref);
      return image;
}

questionAnswers(8)

yourAnswerToTheQuestion