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



这个答案解释了如何标记资产,以便你可以在代码中使用相同的文件名(例如,"Button.png"(,Xcode 会根据设备是 iPhone 还是 iPad 自动选择正确的图像。

您只需要使用波浪号 (~(。

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

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

    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

相关内容

  • 没有找到相关文章

最新更新