复制并调整UIView的大小以捕获内容

时间:2015-09-04 18:46:44

标签: ios objective-c uiview autolayout

我有一个UIView,使用自动布局在superview上设置,其子视图也通过自动布局设置。 我希望能够调整视图大小以将其调整大小的内容捕获到UIImage,同时保持屏幕上显示的视图大小相同。

我知道我可以使用:

UIGraphicsBeginImageContextWithOptions(myView.bounds.size, NO, 0.0);
[myView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImg = UIGraphicsGetImageFromCurrentImageContext();

从视图中获取图像,

但是如何调整视图大小以捕获其内容,同时保持其不显示?

由于

为清晰起见编辑

我希望能够增加视图的宽度,更改视图的宽高比,允许自动布局约束将其子视图排列为新的大小。

是否可以简单地复制视图,不要将其添加为主窗口的子视图(因此它不可见)并更改其框架,然后捕获它?

1 个答案:

答案 0 :(得分:0)

我创建了视图控制器的第二个实例,并使用与原始属性相同的属性进行设置,但大小不同。我还必须将新视图添加为子视图,通过UIGraphicsGetImageFromCurrentImageContext()捕获其内容,然后从子视图中删除视图。

这似乎不是一个非常有效的解决方案,知道是否有更好的方法来做这件事会很有趣。