【发布时间】:2015-10-31 15:33:59
【问题描述】:
我正在尝试检测 iPad Pro 设备,并尝试通过以下方式猜测其高度:
NSLog(@"%f",self.view.frame.size.height);
但它返回 1024 !与 iPad 非视网膜设备相同。有什么建议吗?
我需要用这行代码为 iPad Pro 指定一些代码:
#define iPadPro ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad && [UIScreen mainScreen].bounds.size.height == 2732)
...即使在 iOS 模拟器上,代码也必须检测到 iPad Pro!
谢谢
【问题讨论】:
-
您不能使用启动屏幕。支持 iPad Pro 需要一个可以放大到更大尺寸的启动屏幕。
-
您可以使用 UIScreen 的 -nativeBounds 方法来解决这个问题。但是,如前所述,如果 bounds 与常规 iPad 相同,则意味着您尚未声明对设备的本机支持(通过启动图像),因此它将假定应用程序面向常规 iPad 尺寸,并且只会让 -bounds 返回常规 iPad 的大小,然后缩放其所有绘图。因此,问题是您是否想知道它是否是 iPad Pro,或者您是否需要以 iPad Pro 的尺寸进行绘图。如果是后者,你所拥有的一切都很好。
-
正如我所说,要支持 iPad Pro,您必须使用启动屏幕。您可以使用 iPad Pro 的启动图像。如果没有正确的启动屏幕,您的应用表明它不支持 iPad Pro,并且会认为它是在较小的非 Pro iPad 上运行。
-
你没有在听。为了让任何应用程序支持 iPad Pro,您的应用程序必须使用 LaunchScreen。您不能为 iPad Pro 使用启动图像。一旦您添加了正确的 LaunchScreen(将用于运行 iOS 8.0 及更高版本的所有设备),您的应用程序将不会在 iPad Pro 上进行缩放。然后您可以根据需要使用问题中的代码。
-
你在哪里记录视图的框架?
[UIScreen mainScreen].bounds得到什么?
标签: ios objective-c ipad