iPhone 5 报告屏幕高度不正确

3

我正在iPhone 5上测试我的应用程序,它报告屏幕高度为480。在iPhone 5模拟器中,我得到了正确的高度,即568,但是在硬件上,相同的代码报告为480。我正在使用以下代码获取屏幕高度:

[UIScreen mainScreen].bounds.size.height]

可能的原因是什么?谢谢。

可能是重复的问题:如何支持更高的iPhone 5屏幕尺寸? - Steven Fisher
或者https://dev59.com/dGnWa4cB1Zd3GeqPykKJ,或者https://dev59.com/HWct5IYBdhLWcg3wCZMT等等。 - Steven Fisher
1
@StevenFisher 您提供的链接中没有解决为什么模拟器中报告了正确的高度,但实际设备上却没有的问题。 - rmaddy
1
再仔细想一下,你是否尝试过添加一个Default-568h@2x.png?在模拟器中安装的应用程序可能仍然具有它。据我所知(截至本文撰写时),Xcode不会从模拟器沙箱中删除已删除的文件。 - Steven Fisher
@StevenFisher,我刚刚发现了这个问题。是的,我添加了默认图像,然后因为某种原因将其删除,模拟器能够找到它并报告正确的大小。添加图像解决了这个问题。 - dev
显示剩余4条评论
4个回答

5
支持iPhone 5和第五代iPod touch更高的屏幕需要存在Default-568h@2x.png启动图像。模拟器在文件名大小写不敏感的情况下工作,而真实设备对文件名是大小写敏感的。
由于模拟器报告的高度比设备的高度要高,可能是因为你使用了错误的启动图像文件名。确保它确实是Default-568h@2x.png,而不是其他名称,如default-568h@2x.pngDefault-568h@2x.PNG

由于某种原因,当我为4英寸显示器添加默认启动图像时,问题得到了解决。我认为,如果没有4英寸的默认图像,iPhone也会认为应用程序需要在3.5英寸屏幕大小上运行。 - dev
是的,禁用3.5英寸模式就是4英寸启动图像的作用。 :) - Steven Fisher
@StevenFisher 我会用不同的措辞来表达。4英寸的启动图像使应用程序能够完全支持这些类型设备上的4英寸屏幕,但它并不会禁用3.5英寸模式。该应用程序仍在这些类型的设备上以3.5英寸模式运行。 - rmaddy
很好。那么:如何在iPhone 5上禁用3.5英寸的兼容模式呢? :) - Steven Fisher

1

看起来你的应用程序正在运行“居中,带边框”的模式。为了取消此模式并允许调整大小,最好阅读这篇文章iPhone 5 letterboxing / screen resize


0

你也可以尝试一下

CGRectGetHeight([UIScreen mainScreen].applicationFrame)
CGRectGetWidth([UIScreen mainScreen].applicationFrame)

0

对此没有确切的概念。 我使用它来获取屏幕高度。

如果您正在使用UINavigationController或UIViewControler,请获取

self.navigationController.view.frame.size.height
或者
self.view.frame.size.height。

基本上是viewController的视图高度。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接