首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何判断iPhone是iPhoneX系列?

如何判断iPhone是iPhoneX系列?
EN

Stack Overflow用户
提问于 2018-09-21 13:00:43
回答 2查看 870关注 0票数 0

有没有任何方法来判断iPhone Is iPhoneX系列(IPhone X XR XS XSmax)?

我的方式是:

代码语言:javascript
复制
#define iPhoneXSeries (([[UIApplication sharedApplication] statusBarFrame].size.height == 44.0f) ? (YES):(NO))

有什么隐患吗?

还是有更好的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-21 14:31:58

我需要知道,因为iPhoneX系列statusbar的高度是不变的,但是其他的高度可以改变

所以你根本不需要知道你的应用程序是否运行在iPhone X系列手机上--你真正想知道的是状态栏的高度是否可以改变。我要说的是,您甚至不太关心状态栏,因为您希望知道可以将内容放在视图中的位置,这样状态栏和其他系统对象就永远不会让它变得模糊。不管情况是否如此,你应该确保你问的是正确的问题。不依赖设备模型来告诉您有关特性的信息,也不依赖特定的特性来告诉您设备模型。

iOS通常为您提供一种方法来了解您需要的特性。如果你的目标是让你的内容可见,你应该使用UIViewsafeAreaInsets属性和safeAreaInsetsDidChange()方法,当安全区发生变化(例如状态栏高度变化时),系统会调用这个方法。然后你可以调整你的内容以适应新的安全接口。这样构建你的应用意味着你不必担心你的应用程序会破坏你不想要的新设备模型,而且你也不必担心未来的iOS更新会破坏你的假设。

票数 6
EN

Stack Overflow用户

发布于 2018-09-21 13:19:23

试试这个:

代码语言:javascript
复制
let size = UIScreen.mainScreen().bounds.size
print("Your device size: \(size)");

if size.height == 814 {
print("This is an iPhone X")
}
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52444359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档