我真的很挣这个。我搜索了这个问题,但似乎没有人遇到完全相同的问题。
所以我有这个ios7项目,它应该在4英寸和3.5英寸设备上运行。 在4英寸,一切都很好,但在3.5英寸视图控制器的框架高度为568
如果我在AppDelegate中记录UIScreen边界,它会正确返回480.但是如果我创建UIViewController并将其作为rootViewController添加到NavigationController,它的高度为568。 (NavigationController的高度也是480)
首先,我认为可能是因为XIB,所以我创建了空白的UIViewController [[UIViewController alloc] init],但它的高度仍为568。
这让我抓狂,因为我的其他项目工作正常,并且viewcontrollers会自动调整大小。
我检查过我在images.xcassets中定义了一个正确的起始图像,我尝试使用和不使用自动布局的XIB。
只有一件事有所帮助,如果我将xib中的模拟指标转为NONE或3.5英寸,但是我不会在4英寸上获得全屏。并且两个屏幕都有多个xib对我来说不是解决方案。
任何提示都将不胜感激
由于
答案 0 :(得分:1)
我目前正面临这个问题,因为我正在使用autoLayouts,但现在我已经使用nib解决了这个问题。所以我想和你分享。
如果你是通过nib制作一个viewController。然后,您应确保选中“从NIB调整视图”。执行此操作后,您将获得视图w.r.t屏幕边界的帧高。 (3.5英寸屏幕将是480英寸,4英寸屏幕将是568)。
答案 1 :(得分:1)
这种情况发生在我身上,除非是另一种方式 - 应用程序使用3.5英寸屏幕在4英寸上运行。
诀窍是你的发布图像。确保您的R4图像实际上是4英寸,而@ 2X图像是3.5英寸。
答案 2 :(得分:1)
你的时间错误。
初始化大小来自NIB,
因此,您需要在-viewDidLayoutSubviews
(-viewDidAppear
中的较低版本)
答案 3 :(得分:0)