UIImageView中的矢量图像在iOS 12和iOS 13中呈现方式不同

UIImageView中的矢量图像在iOS 12和iOS 13中呈现方式不同,ios,xcode,uiimageview,xcasset,contentmode,Ios,Xcode,Uiimageview,Xcasset,Contentmode,我在xcassets中使用了一些pdf图像,并选中了“保留矢量数据”。相同的图像在不同的iOS版本中呈现不同(我使用的是Xcode 11.2)。在左侧,图像按iOS 13.2中的预期渲染,在右侧,图像未按iOS 11.4中的预期渲染(与iOS 12.2中相同)。通过删除“保留向量数据”复选框,问题不会出现 创建UIImageView的代码如下: self.view.backgroundColor=.white 让imageView=UIImageView(帧:CGRect(x:10,y:20,

我在xcassets中使用了一些pdf图像,并选中了“保留矢量数据”。相同的图像在不同的iOS版本中呈现不同(我使用的是Xcode 11.2)。在左侧,图像按iOS 13.2中的预期渲染,在右侧,图像未按iOS 11.4中的预期渲染(与iOS 12.2中相同)。通过删除“保留向量数据”复选框,问题不会出现

创建UIImageView的代码如下:

self.view.backgroundColor=.white
让imageView=UIImageView(帧:CGRect(x:10,y:20,宽度:self.view.bounds.width-20,高度:self.view.bounds.width-20))
imageView.image=UIImage(名为“日历”)
imageView.backgroundColor=UIColor.red.带AlphaComponent(0.4)
imageView.contentMode=.center
self.view.addSubview(imageView)
Pdf图像大小为27x23像素,通过停止模拟器并打印出图像大小和比例,仍然可以打印正确的值:

(lldb) po ((UIImageView *) 0x7fa1b0c053e0).image.scale
2

(lldb) po ((UIImageView *) 0x7fa1b0c053e0).image.size
(width = 27, height = 23)

我遗漏了什么吗?

我知道这听起来很奇怪,但UIImageView属性设置中的一个小开关解决了这个问题:

let imageView=UIImageView(帧:CGRect(x:10,y:20,宽度:self.view.bounds.width-20,高度:self.view.bounds.width-20))
imageView.contentMode=.center
imageView.image=UIImage(名为“日历”)
imageView.backgroundColor=UIColor.red.带AlphaComponent(0.4)
self.view.addSubview(imageView)

首先设置
contentMode
,然后设置
图像

我知道这听起来可能很奇怪,但是在UIImageView属性设置中稍微切换一下就可以解决问题:

let imageView=UIImageView(帧:CGRect(x:10,y:20,宽度:self.view.bounds.width-20,高度:self.view.bounds.width-20))
imageView.contentMode=.center
imageView.image=UIImage(名为“日历”)
imageView.backgroundColor=UIColor.red.带AlphaComponent(0.4)
self.view.addSubview(imageView)
首先设置
内容模式
,然后设置
图像