我有一个只有Landscape的视图(两者都有)。 它显示为模态视图控制器。
在iphone 5上(模拟器,我还没有尝试过设备),当视图显示时,它的大小为320x480,而不是320x568,并且它是左对齐的。
但是......如果我将模拟器旋转到其他横向方向,或者纵向再向后旋转,它会自动恢复正常并填满屏幕。
如果我确切知道要粘贴的内容,我会粘贴代码...但这里涉及的内容很多,我不知道从哪里开始。
我的所有其他视图都调整得很好,但它们也都包含在UITabbarControllers或UINavigationControllers中。
答案 0 :(得分:1)
我对该问题的简短/粗略/简单解决方案只是将我的视图框架设置为主屏幕边界。
[self.view setFrame:[[UIScreen mainScreen] bounds]];
一如既往......在self.view实际加载之前无法完成,因此可以设置它的框架!所以我必须在 - (void)viewDidAppear
中执行此操作我没有费心去检测设备,因为我总是希望这个视图全屏,无论设备是什么(包括iPad。
我的猜测是内置控制器(UINavigationController等)具有检测iPhone 5和相应设置帧边界的逻辑。
更新:事实证明,我有一个更大的问题。我在MainWindow.xib中的主“窗口”未设置为“启动时全屏”。这是.xib中 因为未检查,我的触摸目标也被屏蔽在xib文件3:2维度的范围之外。选中此框可修复我的触摸目标,并在上面的问题中修复了屏幕填充问题。我删除了原始答案中的代码,视图很好地填满了整个屏幕/窗口,因为“窗口”现在是屏幕的大小。 现在更有意义......