我想要实现的是拍摄UIView
尚未添加为子视图的图像,呈现并处理图像,然后将视图添加到视图层次结构中。
我已经搜索并尝试了一段时间,并相信这根本不可能。
显然问题是,drawRect:
如果没有将视图添加为子视图,则该视图还没有被绘制(称为我猜)。其实我以为renderInContext:
会drawRect/layer
自己打电话。
在将其绘制到 imageContext 之前将其添加为子视图甚至是不够的,因为它不会立即呈现。
我使用renderInContext:
视图层截取屏幕截图,请在此处查看我的代码:
[self.view addSubView:view];
UIGraphicsBeginImageContextWithOptions(view.frame.size, YES, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextTranslateCTM(context, -frame.origin.x, -frame.origin.y);
[view.layer renderInContext:context];
UIImage *renderedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
所以我的问题是,有没有人设法渲染一个不可见 UIView
的,如果如何?