繁体   English   中英

通过屏幕高度获取iPhone型号XS Max

[英]Get iPhone model XS Max by screen height

我正在尝试自定义XS Max的设计。 以前,我只是通过检查main.bound.screen.height来识别设备的,对于这个网站,X.X.Max的高度为: https ://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions,应该返回896.0对吧?

Xcode 10.0 XS Max模拟器返回的屏幕高度为812.0(XR也是如此,应该具有相同的屏幕点)。 任何想法如何解决这个问题?

enum IPhone: String {
  case SE, normal, plus, X, XSMax

  init?(height: CGFloat) {
    switch height {
    case 568: self = .SE
    case 667: self = .normal
    case 736: self = .plus
    case 812: self = .X
    case 896: self = .XSMax
    default:
      return nil
    }
  }
}

struct Design {
  static var iPhone = IPhone(height: UIScreen.main.bounds.height)!
}

在视图控制器的viewDidLoad()中:

print("screen height: \(UIScreen.main.bounds.height), iPhone: \(Design.iPhone.rawValue)")

好的,经过一些搜索,我在这里找到了我的问题的答案: UIScreen MainScreen边界返回错误的大小

事实证明,Xcode会通过浏览您提供的启动图像来猜测屏幕的大小。 你相信吗? 因此,如果您没有为新的XS Max提供合适尺寸的图像,它将退回到它找到的最大启动图像。 这就是为什么在没有启动映像的新项目中可以正常工作的原因。

我提供了XS Max和XR的启动图像,现在屏幕尺寸正确。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM