swift - Xcode 图像解释

标签 swift xcode image uiimageview

什么使图像成为 1x、2x 或 3x(@1x、@2x、@3x)?如何制作 3 倍图像?

最佳答案

iOS 在其坐标系中使用点而不是像素。在原始的非 Retina 设备(iPhone、iPhone3G、iPhone3GS、iPad、iPad 2、iPad mini 和早期的 iPod touch)中,坐标系中的一个点映射到设备屏幕上的一个像素。那时,生活很简单,你向你的应用程序提供映射到点大小的图像,一切看起来都很棒。

当 Apple 推出第一款视网膜显示设备(iPhone 4、带视网膜显示屏的 iPad 和 iPod touch 4)时,这些设备的每个点都有 2 个像素。 Apple 设计了一个聪明的方法来处理这个问题。程序员只需要在他们的程序中添加第二张分辨率更高的图像,并在名称中添加@2x。无需更改代码。如果您的代码加载名为“house”的图像,iOS 将在非 Retina 设备(例如 iPad 2 或原始 iPad mini)上加载“house”,并对 Retina 设备使用“house@2x”。 iPhone 6 Plus 具有更高的分辨率,因此它使用 @3x 版本。

那么是什么让图像成为@1x、@2x 或@3x?如果您的“房子”图像是 120 x 90 像素,那么您的“house@2x”图像应该是 240 x 180 像素,即每个维度像素数的两倍(简称“2x”)。 “house@3x”版本应为 360 x 270(每个维度像素数的 3 倍)。

由您来确保@2x 和@3x 版本具有更多细节,而不仅仅是更多像素。您可以使用 Photoshop Pixelmator 之类的程序 创建您的图像。首先创建非常详细的图像版本(@3x 版本),然后将其缩小到 @2x 分辨率并将该版本保存为您的 @2x 版本。然后再次打开您的@3x 版本并将其缩放至@1x 分辨率并将其保存为您的@1x 版本。 Add all three versions to the Assets Catalog in Xcode , iOS 会为合适的设备加载合适的版本。

关于swift - Xcode 图像解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26569995/

相关文章:

ios - 无法使用 Alamofire 方案构建工作区 Alamofire

Swift 如何存储和检索集合类型

function - Xcode (Swift) 使用另一个函数中的变量

ios - 使用 Xcode 10.1 上传 App 时出现 "Install Error"

android - 我们如何在android中创建多点触控?

ios - 如何在 Xcode 中为大量现有的 swift 文件和类添加前缀

xcode - 使用 mprotect 使文本段在 macOS 上可写

ios - 没有成员名称 'subscript' - SWIFT

R如何根据矩阵值堆叠图像

php - 如何在MySql表中的某个id处回显图像?