为啥 [UIScreen mainScreen].bounds] 没有返回全屏尺寸?
Posted
技术标签:
【中文标题】为啥 [UIScreen mainScreen].bounds] 没有返回全屏尺寸?【英文标题】:Why [UIScreen mainScreen].bounds] is not returning full screen size?为什么 [UIScreen mainScreen].bounds] 没有返回全屏尺寸? 【发布时间】:2013-07-19 16:14:00 【问题描述】:我有一个在新 iPhone 5 视网膜宽屏设备之前创建的应用程序。 现在我正在尝试支持这种高清宽屏。
我调整了主 ViewController 和主窗口 XIB 文件,以便将它们设置为 Autolayout。我可以验证通过 IB 显示的宽度/高度显示为 320 x 568。
但是,当我在模拟器中运行时,我可以看到高度仍然是 480。 我用来打印高度(和宽度)的代码在主视图控制器的 viewWillAppear 方法中:
[UIScreen mainScreen].bounds]
为什么 size.height 还是 480 而不是 568?
【问题讨论】:
您是否在标签栏控制器中显示视图? 显示此链接以获取iphone 5
屏幕高度 [单击此链接以获得支持][1] [1]:***.com/questions/12395200/…
@alvinfromDiaspar 显示我的答案并搜索该链接。
你得到了你的问题的完整说明。
【参考方案1】:
值得注意的一点 - 在新的 Xcode 中,您必须将此图像文件 Default-568h@2x.png 添加到资产中
【讨论】:
【参考方案2】:您必须将 iPhone 5 Launch 图像 (Default-568h@2x.png
) 添加到您的项目中。
568 点高的启动图像告诉 ios 以 4" 模式启动您的应用。如果您没有此图像,您的应用将被视为 3.5" 应用。即使它是 4" 兼容的。
【讨论】:
谢谢大家,为此浪费了半个小时:) 哇,一个与文件资源无关但与硬件有关但依赖资源工作的 API!哇,这有多糟糕? 我有这张图片,我的应用仍然以 320 像素显示。以上是关于为啥 [UIScreen mainScreen].bounds] 没有返回全屏尺寸?的主要内容,如果未能解决你的问题,请参考以下文章
UIScreen.mainScreen().nativeBounds.height 无法使用 Xcode 7/Swift 2,目标 iOS7
横向模式的“UIScreen mainScreen] applicationFrame]”
iPad:[UIScreen mainScreen].bounds 返回错误的坐标
[UIScreen mainScreen].bounds 与 [UIApplcation sharedApplication].keyWindow.bounds?