小编Gui*_*ate的帖子

Swift - 使用3D变换从UIView获取UIImage

我正在开发一个应用程序来编辑图像."编辑器"有一个平方UIView,这个视图有一些子视图:

  • 背景UIImageView;
  • 使用3d Transform进行一个或多个叠加.这些视图可以是UITextViewUIImageView.

因此,当用户准备好保存图像时,我计算UIView图像应该比原始背景图像具有相同大小的原始大小.

例如:如果背景图像是3750x3750并且用户正在使用iPhone X(因此包装器UIView为375x375),我的最终比例将为10.

所以,我需要从中获得一个缩放图像UIView.到目前为止我尝试了什么:

1 - 使用view.drawHierarchy(in: context):

如果我使用具有相同大小UIView(在我的示例中为375x375)且比例为10 的上下文,则最终图像将被像素化.实际上无论我使用哪种规模,结果都是一样的.

在尝试使用比例1 UIView调用drawHierarchy(in:)方法之前,我尝试将我扩展到最终大小,但这不安全:适用于小图像,但更大的图像会使应用程序崩溃并显示内存警告.

2 - 使用view.layer.render(in: context):

使用具有所需UIView大小和计算尺度的上下文,这将呈现具有正确分辨率的图像,没有像素化,但是我的所有3D变换都将被丢弃.

在所有情况下,我都会相应地更新layer.contentScale所有子视图(及其子视图和子图层).

因此,我需要使用关于drawHierarchy(in:)计算尺度的view.layer.render(in:)方法或使用关于子视图的3D变换的方法.

我怎样才能做到这一点?

谢谢!!

core-graphics ios swift

7
推荐指数
0
解决办法
307
查看次数

Xcode - 仅适用于英语的Localizable.strings

我正在尝试使我的localizable.strings正常工作,但我无法弄清楚如何.我的故事板也是可本地化的,并且可以工作:所有按钮和视图控制器都以两种语言正确显示.

但是以编程方式加载的NSLocalizedStrings只是以英文显示.我检查了我的Localizable.strings,它有两种语言:英语和巴西葡萄牙语(pt-BR),我没有发现任何问题.

我该如何解决?

提前致谢!

xcode localization localizable.strings nslocalizedstring ios

3
推荐指数
1
解决办法
3110
查看次数