【问题标题】:Copy and resize UIView to capture contents复制并调整 UIView 大小以捕获内容
【发布时间】:2015-12-01 00:08:05
【问题描述】:

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

我知道我可以使用:

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

从视图中获取图像,

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

谢谢

为清楚起见编辑

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

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

【问题讨论】:

    标签: ios objective-c uiview autolayout


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 2021-05-21
      • 2019-12-17
      • 1970-01-01
      相关资源
      最近更新 更多