【问题标题】:PDF vector image in Launch Screen, not scaling properly on device启动屏幕中的 PDF 矢量图像,在设备上无法正确缩放
【发布时间】:2020-12-04 20:11:00
【问题描述】:

我正在为我的启动屏幕使用故事板。我的启动屏幕中有一个 UIImageView 和一个 UILabel。对于 UIImageView 的图像,我使用的是位于 Assets.xcassets 中的 .pdf 图像。我的图像的默认大小是 25x25 像素,但由于它是矢量图像,它应该能够无限缩放。 UIImageView 有约束(与超级视图宽度相等,即设备屏幕,1:1 纵横比,以超级视图为中心)。 UIImageView 具有内容模式“Aspect fit”。该图像在情节提要和模拟器中显示良好。它在真实设备上看起来并不像想要的那样:图像的大小是正确的(适合屏幕的宽度),但图像是像素化的。由于它在模拟器上运行良好(未像素化),我希望它在设备上也能正常运行。我知道其他人也有类似的问题,比如根本没有显示图像,重新启动设备或 Xcode 解决了这个问题,但这对我来说不是。这就是为什么我认为我的问题有所不同,因为图像出现了,它只是像素化了。如果有帮助,我想准确说明我的矢量图有不同的颜色。

我已经尝试过一些基本的东西,例如:重启设备、重启 Xcode、清理构建文件夹、删除派生数据、从设备中删除应用程序。

【问题讨论】:

  • 您定位的最低 iOS 版本是多少?
  • iOS 12.0,我也在 Xcode 11.6 上,如果这有助于@EugeneDudnyk,那么有问题的设备是带有 iOS 13.6 的 iPhone 11
  • 您是否为您的 pdf 资产设置了“保留矢量数据”和“始终模板”?
  • 我确实设置了“保留矢量数据”但没有设置“始终模板”,因为这会从我的图像中删除颜色。我无法使用 tint color 设置颜色,因为我的图像中有不止一种颜色。但它在模拟器上运行良好。
  • iOS 12 和 13 都不能用吗?

标签: ios uiimageview uistoryboard vector-graphics launch-screen


【解决方案1】:

这是我发现的一种解决方法:我使用图像编辑器手动将 pdf 图像的默认大小更改为更大的值,例如 1000x1000 像素,然后我将图像重新添加到 Xcode 中。第一次图像根本没有出现,然后我关闭设备并重新启动它。我从 Xcode 再次构建并运行,现在每次都能正常工作。

它有效,但我对这种解决方法并不完全满意,所以如果其他人想出更好的方法,我很感兴趣!

【讨论】:

    【解决方案2】:

    在代码中而不是在情节提要中设置图像名称。在模拟器和设备上测试,通过代码设置时工作正常。

    imgVec.image = UIImage.init(named: "yourImageName")
    

    Refer this answer

    【讨论】:

    • 我的问题是关于LaunchScreen.storyboard。我认为您无法通过代码进行设置。
    • LaunchScreen 中无法通过代码设置图片。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多