【问题标题】:Swift image size based on device displayed on基于设备显示的快速图像大小
【发布时间】:2014-12-15 19:27:04
【问题描述】:

我制作了一个视图控制器。上面显示了很多信息,包括标签和图像。我想设置它,如果使用的设备是 iPhone 4,则不会显示图像,以帮助节省视图控制器的空间。我如何在 Swift 中做到这一点?

【问题讨论】:

    标签: swift uiimage


    【解决方案1】:

    用于检测设备(如 iPhone 4):

    var device = UIDevice.currentDevice().model
    

    此字符串将显示设备型号。例如,iPhone3,1 表示它是 iPhone 4。

    您可以在此页面中找到每个设备(包括 iPod 和 iPad)的字符串:UIDevice currentDevice model possible values

    if device == "iPhone3,1" {
        imageview.hidden = true
    }
    

    以上方法仅适用于真机,不适用于模拟器。

    如果你只想在某些屏幕尺寸上隐藏 UIImageView 而不管设备类型,你可以使用下面的方法。

    if UIScreen.mainScreen().nativeBounds.height == 960.0 {
       // code for iPhone 4 or 4S
    } else {
        // code for the rest
    }
    

    像 Leonardo Savio Dabus 回答的那样检查宽度是行不通的,因为 iPhone 5 的宽度与 iPhone 4 相同,但 iPhone 5 的屏幕比 iPhone 4 大。

    【讨论】:

    • 他可以简单地使用 if 语句来找出字符串是否是,例如,iPhone3,1。如果是,那么他可以设置 UIImageView.hidden = true
    • 如果他只想在 iPhone 4 上隐藏 UIImageView,那么他需要在 if 语句中包含 3 个字符串。 if device == ("iPhone3,1" || "iPhone3,2" || "iPhone 3,3") {...} 这将更加可定制,因为他可能希望在 iPhone 4s 上显示图像,因为 iPhone 4s 将具有更强的处理能力(假设他在 iPhone 4 上隐藏了 imageViews,因为它会滞后)
    • 对不起,我之前不小心发布了我未完成的答案。你可以看看我上面编辑的答案。
    • 我注意到iOS模拟器无法识别这个?尽管实际上没有要测试的设备,但有什么方法可以测试吗?
    • 使用模拟器使其工作的唯一方法是检查设备的本机边界。
    【解决方案2】:

    您可以使用此代码在运行时检测设备:

         var device = UIDevice.currentDevice().model
    

    【讨论】:

      猜你喜欢
      • 2022-01-25
      • 2011-09-20
      • 2016-08-18
      • 1970-01-01
      • 1970-01-01
      • 2020-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多