IOS SDK – 如何截屏tableView的内容?

如何屏幕截图的所有内容的tableView? (所有内容=可见都是+不可见区域)

我试过这个:

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

但它不起作用,我的意思是它只是截图可见区域:(


我解决了:))

这里是代码:)

 + (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]; } 

你必须使用contentSize.height来获取tableview的高度

尝试这个

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

是的,你可以做到这一点。 我不能提供你想要的工作代码,我只能指导你如何做到这一点。 在循环中,您必须通过更改contentOffset并将每个图像放在数组中来渲染表格的所有部分。 获得表视图的所有部分后,必须将表格的各个部分连接到一个图像(在cgimagecontext中绘制每个图像,记得要为结果图像设置正确的大小)。 就是这样,这不难:)希望这有助于,祝你好运!