我有一个UIView,使用自动布局在superview上设置,其子视图也通过自动布局设置。 我希望能够调整视图大小以将其调整大小的内容捕获到UIImage,同时保持屏幕上显示的视图大小相同。
我知道我可以使用:
UIGraphicsBeginImageContextWithOptions(myView.bounds.size, NO, 0.0);
[myView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImg = UIGraphicsGetImageFromCurrentImageContext();
从视图中获取图像,
但是如何调整视图大小以捕获其内容,同时保持其不显示?
由于
为清晰起见编辑
我希望能够增加视图的宽度,更改视图的宽高比,允许自动布局约束将其子视图排列为新的大小。
是否可以简单地复制视图,不要将其添加为主窗口的子视图(因此它不可见)并更改其框架,然后捕获它?
答案 0 :(得分:0)
我创建了视图控制器的第二个实例,并使用与原始属性相同的属性进行设置,但大小不同。我还必须将新视图添加为子视图,通过UIGraphicsGetImageFromCurrentImageContext()
捕获其内容,然后从子视图中删除视图。
这似乎不是一个非常有效的解决方案,知道是否有更好的方法来做这件事会很有趣。