对于不同的设备/分辨率使用不同的图像,例如如何使用波浪号(〜)来区分iPhone和iPad?

时间:2017-03-24 00:44:23

标签: ios iphone xcode ipad

This answer解释了如何标记资源,以便您可以在代码中使用相同的文件名(例如,“Button.png”),Xcode会根据设备是iPhone还是iPad自动选择正确的图像

你只需要使用波浪符号(〜)。

是否有区分不同设备的类似惯例?例如,我们需要4S和7+的不同图像。现在,我们在代码中检查设备的高度并相应地更改文件名,但这感觉很乱。

1 个答案:

答案 0 :(得分:0)

最接近我提出的是使用DeviceKit并在xcassets中创建2个条目。 AppLogo有2x和3x图像。 AppLogoSmall为"小屏幕设备提供2x图像。"我的应用是新的,所以我不需要担心iPhone少于5个。

    let titleImage: UIImage?
    //get the device
    let device = Device()

    //list of small screen devices
    let smallScreenDevices: [Device] = [.iPhone5, .iPhone5c, .iPhone5s, .iPhoneSE, .simulator(.iPhone5), .simulator(.iPhone5c), .simulator(.iPhone5s), .simulator(.iPhoneSE)]

    //check if device has small screen
    if device.isOneOf(smallScreenDevices){
        titleImage = UIImage.init(named: "AppLogoSmall")
    }
    else{
        titleImage = UIImage.init(named: "AppLogo")
    }

    let titleImageView = UIImageView.init(image: titleImage)
    titleImageView.contentMode = .scaleAspectFit
    //titleImageView.contentMode = .scaleAspectFill

    navigationItem.titleView = titleImageView