gpt4 book ai didi

ios - xcode - Assets 目录 - 图像类型 - 相同比例 - 不同分辨率

转载 作者:行者123 更新时间:2023-11-29 13:55:17 25 4
gpt4 key购买 nike

我有一个多年前开发的 iOS 应用程序,它使用 images.xcassets 目录设置许多控件的背景。图像是使用 contents.json 设置的,其中目标是 iPhone,iPad 使用 'idiom' 键。进一步的规范包括“比例”和“文件名”。似乎这个应用程序在 iOS 8 之前运行良好。

时至今日,iPhone、iPad 等高屏幕分辨率设备层出不穷。因此,我需要针对这些高分辨率屏幕设备添加更多图像。

不知道之前是怎么处理的,现在同一个比例因子下出现了不同的屏幕分辨率。例如,iPad Pro 12.9"和 iPad Pro 11"的比例因子为“2x”,但分辨率分别为“2048x2732”和“1668x2388”。现在,如果我创建一个以最高分辨率 2048x2732 为目标的图像,该图像不会针对 1668x2388 分辨率居中。

  1. contents.json 中是否有任何特定的键可以区分相同比例因子的屏幕分辨率/尺寸?
  2. 当我搜索 Apple 的 Assets 目录文档时,可以在 documentation archive 中找到它。 .这是否意味着我们不应该再对图像使用 Assets 目录?是否有任何最新的背景图片设置标准?

最佳答案

您可以按照两个选项为不同的设备设置背景图片。

1-) 将UIImageView 内容模式设置为.aspectFill。通过设置此属性,您的图像将针对不同的纵横比进行裁剪,但原始纵横比将受到保护。如果您使用重复图像作为背景,我推荐此选项。

2-) 为不同的纵横比和分辨率设置两个不同的 Assets 文件。如果您遵循此选项,在代码中,您需要检查设备并设置正确的图像资源。

let image: UIImage!
if UIDevice().userInterfaceIdiom == .phone {
switch UIScreen.main.nativeBounds.height {
case 1920, 2208:
print("iPhone 6+/6S+/7+/8+")
image = UIImage(named:"StandartBackground.png")
case 2436:
print("iPhone X, XS")
image = UIImage(named:"XBackground.png")
case 2688:
print("iPhone XS Max")
image = UIImage(named:"XSBackground.png")
}
}

建议:常见且正确的方法是首选,但在某些情况下会不适合。因此,尽量避免第二种选择,但如果没有其他选择。将每个不同的纵横比放入不同的 Assets 文件。

关于ios - xcode - Assets 目录 - 图像类型 - 相同比例 - 不同分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56730157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com