IOS SDK: cómo se captura el contenido de la pantalla de tablaView?

¿Cómo hacer una captura de pantalla de TODO el contenido de tableView? (todo el contenido = visible es + NO el área visible)

He intentado esto:

UIGraphicsBeginImageContext(self.tableView.bounds.size); [self.tableView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage* image1 = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); self.imageView.image = image1; 

pero no funciona, me refiero a que es pantalla única área visible 🙁


Lo resolví :))

aquí está el código 🙂

 + (UIImage *)captureView:(UIScrollView *)view inContentRect:(CGRect)rect{ UIImage* image = nil; CGPoint savedContentOffset = view.contentOffset; CGRect savedFrame = view.frame; UIGraphicsBeginImageContextWithOptions(view.contentSize, 1, 0); view.contentOffset = CGPointZero; view.frame = CGRectMake(0, 0, view.contentSize.width, view.contentSize.height); [view.layer renderInContext: UIGraphicsGetCurrentContext()]; image = UIGraphicsGetImageFromCurrentImageContext(); view.contentOffset = savedContentOffset; view.frame = savedFrame; UIGraphicsEndImageContext(); // after all of this, crop image to needed size return [Utils cropImage:image toRect:rect]; } 

 + (UIImage *)captureView:(UIScrollView *)view inContentRect:(CGRect)rect{ UIImage* image = nil; CGPoint savedContentOffset = view.contentOffset; CGRect savedFrame = view.frame; UIGraphicsBeginImageContextWithOptions(view.contentSize, 1, 0); view.contentOffset = CGPointZero; view.frame = CGRectMake(0, 0, view.contentSize.width, view.contentSize.height); [view.layer renderInContext: UIGraphicsGetCurrentContext()]; image = UIGraphicsGetImageFromCurrentImageContext(); view.contentOffset = savedContentOffset; view.frame = savedFrame; UIGraphicsEndImageContext(); // after all of this, crop image to needed size return [Utils cropImage:image toRect:rect]; } 

Tienes que usar contentSize.height para get el alto de tableview

Prueba esto

 UIGraphicsBeginImageContext(self.tableView.contentSize.height); [self.tableView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage* image1 = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); self.imageView.image = image1; 

Sí, usted puede hacer esto. No puedo proporcionar el código de trabajo para lo que quieres, solo puedo guiarte en cómo hacerlo. En el ciclo, debe get renderizados de todas las partes de la tabla cambiando su contenido contentOffset y colocar cada image en la matriz. Después de get todas las partes de la vista de tabla, debe conectar las partes de la tabla a una image (dibujar cada image en cgimagecontext, recordar establecer el tamaño correcto para la image de resultado). Eso es todo, no es tan difícil 🙂 Espero que esto ayude, ¡buena suerte!