ios - Swift: Assets 究竟如何适用于不同尺寸的设备?

标签 ios swift

所以我有一个用 Swift 制作的游戏,我为 iPhone 5s 构建了它及其所有 Assets 。所以很自然地,当为 4s 或 iPad 构建游戏时,游戏看起来会失真并且 ImageView 位于错误的位置。

我如何解决这个问题,以便游戏可以在 4/4 和 5/5 上运行?我在哪里放置较小的图像?我看到了 1x 和 2x,但这到底是什么意思?

最佳答案

自 2010 年的 iPhone 4 以来,每一部 iPhone 都配备了 Retina 显示屏。现在我们也有带 Retina 显示屏的 iPad。

您可以拥有名为“image1.png”的 Assets 和名为“image1@2x.png”的同一 Assets 的更高分辨率版本。在文件名末尾添加“@2x”,iOS 会根据当前设备的显示知道使用哪个资源。

关于您的“很自然地,当为 4s 或 iPad 构建时,游戏看起来失真并且 ImageView 位于错误的位置”的评论:您在这里要注意的是您设计的实际屏幕尺寸'重新设计。

iPhone 4/4S 的屏幕分辨率为 640 x 960 像素,而 iPhone 5/5c/5s 的屏幕分辨率为 640 x 1136。iPad 的 Retina 显示屏型号的屏幕分辨率为 2048 x 1536。

因此,我认为您的问题不在于创建 Assets ,而在于您如何在屏幕上排列它们。

我建议您查看 AutoLayout tutorial .

希望我已经阐明了您的问题。

关于ios - Swift: Assets 究竟如何适用于不同尺寸的设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25224442/

相关文章:

ios - NSUserDefaults 多久同步一次?

json - 如何用 SwiftyJSON 解析这个?

ios - Segue 第一次推送 Nothing(发送数据延迟)

swift - API滥用: Attempt to serialize store access on non-owning coordinator - with Assets. xcassets

ios - NSOutputStream 总是写入零字节

iphone - NSOperation和NSURLConnection冲突

ios - Swift 4 - UIActivityViewController 共享到 Outlook 主题和标题

iphone - 在 UIButtons 上从服务器加载多个图像??

swift - 将时间字符串快速转换为日期

ios - 在不相关的 ViewController 之间传递数据