UIButton 的 SVG 到 PNG 图像的分辨率 iOS

Resolution for SVG to PNG image for UIButton iOS

我的 Swift/iOS 应用程序中有一个 UIButton,宽度为 20,高度为 20,里面有一个图像。

我有一个 SVG 图标,我想将其用于 UIButton 中的图像。当我将此 SVG 转换为 PNG 时,1x、2x 和 3x 应该是什么分辨率?

现在我正在创建 30x30、60x60 和 90x90 的 PNG 文件,但这主要是猜测。

我应该改为使用 100x100、200x200 和 300x300 的 PNG 文件吗?

这些更大的分辨率看起来会更好吗,但也许它们需要更多的时间来加载?

另外,在 UIButton 中,正确设置的内容模式是什么?缩放以填充还是纵横比填充?

你应该使用你所需要的,如果你需要填充 20 点,你将有一组 20、40、60 像素。不需要更大的图像,看起来没什么区别,需要更多的时间来加载,更多的时间来渲染和增加应用程序的大小。

每种内容模式都有自己的目的: Difference between UIViewContentModeScaleAspectFit and UIViewContentModeScaleToFill?

您问题的答案是 "it depends"。假设您希望图像完全填满按钮。然后询问按钮的边界,这将是您图像的 1x 大小。 2x 和 3x 尺寸将从那里开始。

至于内容模式,这取决于图像大小与按钮大小的关系。如果图像 1:1 与按钮的大小相同,则没有区别。如果图像小于或大于按钮,那么上下文模式会给你不同的外观。

我建议您创建一个包含多个按钮的测试程序。使用一些宽而短的图像和一些高瘦的图像。在按钮上设置这些图像并尝试不同的内容模式以查看关系如何变化。