Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何捕获tableView可见部分的UIImage_Ios_Objective C_Uitableview_Uiimage - Fatal编程技术网

Ios 如何捕获tableView可见部分的UIImage

Ios 如何捕获tableView可见部分的UIImage,ios,objective-c,uitableview,uiimage,Ios,Objective C,Uitableview,Uiimage,我是第一个使用UIGraphicsBeginImageContext的人。 我想将tableView的可见部分捕获到UIImage中,并将其添加到新CALayer的内容中。 这是我的密码: UIGraphicsBeginImageContext(tableView.frame.size); [tableView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFro

我是第一个使用UIGraphicsBeginImageContext的人。 我想将tableView的可见部分捕获到UIImage中,并将其添加到新CALayer的内容中。 这是我的密码:

UIGraphicsBeginImageContext(tableView.frame.size);

[tableView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

CGRect frame = [self.view.window convertRect:view.frame fromView:tableView.superview];
CALayer *imageLayer = [CALayer layer];
imageLayer.contents = (id)image.CGImage;
imageLayer.frame = frame;
但是,如果我向下滚动tableView,则捕获图像的顶部将为白色。 我使用
UIImageWriteToSavedPhotosAlbum(image,nil,nil,nil)以查看结果

经过长时间的寻找答案,我不得不在这里问这个问题,希望有人能帮助我! 谢谢

创建一个名为“viewHolder”的视图,将其“clipsToBounds”设置为是。将tableView作为子视图添加到viewHolder。现在使用:

UIGraphicsBeginImageContext(viewHolder.frame.size);

[viewHolder.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

您的目标是什么版本的iOS?而不是
[view.layer renderInContext
您是否尝试过
[tableView.layer renderInContext
?@albertenshaw抱歉我的错误,
视图是
tableView
@HonghaoZhang很高兴我能提供帮助:)