iOS-iPhone 6 和 6 plus 的图像资源

标签 ios objective-c xcode swift xcasset

我正在开发支持所有 iPhone 屏幕的纵向分辨率应用。我没有缩放,所以我必须适应每个屏幕尺寸。 iPhone 6 plus portrait 为 1242 x 2208 (@3x),iPhone 6 portrait 为 750 x 1334 (@2x)

通常我会在 320@1x、640@2x 和 960@3x 中创建全宽图像图形。但现在它不起作用。我是否必须为每个分辨率制作完整的宽度 大小的图像?

比如我会为 iPhone 5s 或更早版本创建 640@2x,为 iPhone 6 创建 750@2x,为 iPhone 6 plus 创建 1242@3x >.

我是否必须为每个分辨率制作不同的图像?我的方向是正确的还是有更好的解决方案

最佳答案

iPhone 6 和 iPhone 5 使用相同的 @2x 图像,但由于两种设备的分辨率不同,最好为两者获取不同的图像。

在 iPhone 6 上,如果将加载 iPhone 5 的图像,那么您会看到一些失真。

另一方面,如果您有适用于 iPhone 6 的 750 x 1334 (@2x) 图像,并且如果您将加载该 ionic iPhone 5 或 4,那么您将看到压缩图像,因为它具有更高的分辨率。

但问题是,如果您同时放置 iPhone_5@2x 和 iPhone_6@2x,那么 Xcode 将不知道要在哪个设备上加载哪个图像。因此,为此我创建了一个函数来在运行时区分图像。

//MARK: Load Images for particular device
func getDeviceSpecificImage(imgName: String) -> String{

var imageName: String?

    switch UIScreen.mainScreen().bounds.width{

        case 320:
            imageName = String(format: "%@_5@2x", imgName)

        case 375:
            imageName = String(format: "%@_6@2x", imgName)

        case 414:
            imageName = String(format: "%@_6+@3x", imgName)

        default:
            break
    }

    return imageName!
}

希望这对您有所帮助!

关于iOS-iPhone 6 和 6 plus 的图像资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36125375/

相关文章:

ios - 将 Xamarin.Forms 应用程序部署到物理 iOS 设备时出现 "resource fork, Finder information, or similar detritus not allowed"错误

iphone - FMOD 停止或重置 DSP?

ios 旋转器在停止命令后不停止

ios - 如何在不重新加载 Objective-C 行的情况下更改行中的特定元素?

ios - 应用程序终止时发送 HTTP POST

objective-c - 如何更改 Xcode 项目中的默认 MainMenu.xib 文件?

ios - 如何更新 ios 中 tableview 单元格内的标签文本

objective-c - 定时 UIAlert 每 60 秒触发一次,无论我使用什么延迟

ios - 类的多重继承

IOS - 获取联系人电话用于通讯录