有没有任何方法来判断iPhone Is iPhoneX系列(IPhone X XR XS XSmax)?
我的方式是:
#define iPhoneXSeries (([[UIApplication sharedApplication] statusBarFrame].size.height == 44.0f) ? (YES):(NO))有什么隐患吗?
还是有更好的方法?
发布于 2018-09-21 14:31:58
我需要知道,因为iPhoneX系列statusbar的高度是不变的,但是其他的高度可以改变
所以你根本不需要知道你的应用程序是否运行在iPhone X系列手机上--你真正想知道的是状态栏的高度是否可以改变。我要说的是,您甚至不太关心状态栏,因为您希望知道可以将内容放在视图中的位置,这样状态栏和其他系统对象就永远不会让它变得模糊。不管情况是否如此,你应该确保你问的是正确的问题。不依赖设备模型来告诉您有关特性的信息,也不依赖特定的特性来告诉您设备模型。
iOS通常为您提供一种方法来了解您需要的特性。如果你的目标是让你的内容可见,你应该使用UIView的safeAreaInsets属性和safeAreaInsetsDidChange()方法,当安全区发生变化(例如状态栏高度变化时),系统会调用这个方法。然后你可以调整你的内容以适应新的安全接口。这样构建你的应用意味着你不必担心你的应用程序会破坏你不想要的新设备模型,而且你也不必担心未来的iOS更新会破坏你的假设。
发布于 2018-09-21 13:19:23
试试这个:
let size = UIScreen.mainScreen().bounds.size
print("Your device size: \(size)");
if size.height == 814 {
print("This is an iPhone X")
}https://stackoverflow.com/questions/52444359
复制相似问题