无法在iPhone 6.0模拟器Retina 4英寸上全屏启动我的应用程序

我已将Default-568h@2x.png添加到我的项目中并在项目设置中设置它,我还为我的视图和该视图上的元素设置了自动调整选项 ,该视图最初是在我的应用程序上加载的,这是仅限横向的,但是在运行之后我的应用程序在iOS 6.0模拟器Retina 4英寸我看到我的应用程序一直向左移动,在右侧留下黑色像素区域。

知道我应该怎么做才能看到我的应用程序在iOS 6.0模拟器Retina 4英寸上“全屏”运行?


[编辑#1:AppDelegate]

我还编辑了我的AppDelegate.m,如下所示:

viewControllerMain = [[ViewControllerMain alloc] init]; //[window addSubview:viewControllerMain.view]; window.rootViewController = viewControllerMain; 

[编辑#2:编辑框]

我设法实现全屏模式,但它不能正常工作。 我在观点中这样做:

 CGRect frame = CGRectMake([UIScreen mainScreen].bounds.origin.x, [UIScreen mainScreen].bounds.origin.y, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width); self.frame = frame; 

这只会让我的视图全屏显示,但我在开头提到的右边的黑色区域已经死了,并且在那个区域内没有用户交互 (我有UIButton那里没有反应)。 所以基本上,我所做的只是使我的视图以全分辨率显示,但视图中元素的function仅限于我第一次在Retina 4英寸模拟器上启动时我的应用程序最初显示的区域。


[编辑#3:在XIB文件中更改UIView的大小]

我甚至试图在我的XIB文件中改变UIView的实际大小,将它们全部调整为Regina 4全屏,但仍然 – 同样的事情。


[编辑#4:改变窗口对象的大小]

我试图在AppDelegate.m中更改窗口对象的大小,但再次没有运气。 这是AppDelegate.m的样子。

 application.statusBarOrientation = UIInterfaceOrientationLandscapeRight; mainViewController = [[MainViewController alloc] init]; window.rootViewController = mainViewController; // Override point for customization after application launch [window setFrame:[UIScreen mainScreen].bounds]; [window makeKeyAndVisible]; 

[编辑#5:“解决方案”]

到目前为止,我做了以下操作:在IB中我制作了具有iPhone 5分辨率大小的新UIViews,分配了相同的所有者类,它们正在处理为iPhone 5分辨率而制作的等效UIViews以及在代码中我需要加载一些这些UIViews我检查[ UIScreen mainScreen] .borders确定当前正在运行我的应用程序的设备。 通过这种方式,我成功地完成了工作。

但是,仍然存在一个主要问题 – 为什么在我完成所有提到的事情后,我的所有UIViews都没有自动延伸到新的分辨率?

无论如何,赏金仍然活跃5或6天。 如果有人设法解决这个问题,我将非常感激。 如果没有,我会给@ onegray奖励 ,因为那是我在第一时间没有照顾的事情,而且在我目前的实施中它非常重要。

最好的祝福。


[编辑#6:启动时MainWindow.xib全屏选项]

正如@ user1702985建议的那样,我在取消选择时将此选项设为ON 。 但没有运气

当我启动我的应用程序时,我用一个UIImageView显示一个View 2秒。 如果我正确设置自动resize属性,则在iPhone 5模拟器上全屏显示此UIView。 但。 之后我有第二个UIView,其中包含垂直UIScrollView,UIViews作为页眉和页脚以及一个UIButton,我还为这些元素设置了所有自动resize选项,但是这个UIView显示在iPhone 4–分辨率中。 它真的很奇怪,我仍然不知道它是什么。


[编辑#7:自动resize的选项]

这个自动resize选项是为我的所有UIViews及其元素设置的。

在此处输入图像描述


[编辑#8:启动时全屏说明]

MainWindow.xib属性。

在此处输入图像描述

确保关键窗口的大小合适。 解决方法是设置正确的框架: [window setFrame:[[UIScreen mainScreen] bounds]]

更新:
如果没有源代码,很难猜出问题出在哪里。 我已经创建了简单的应用程序存根来测试iPhone4 / iPhone5的界面方向 。 我刚刚创建了新的“单视图应用程序”,在根视图中添加了一些子视图,并添加了“默认”图像。 我在Xcode 4.3.2中完成了它,没有Xcode 4.5.任何额外functionXcode 4.5. 并且app会自动将屏幕拉伸到适当的大小(适用于portrait/landscape方向)。

我希望这会对你有所帮助, 但不确定你是否会全屏触控效果 ,所以你必须检查你的应用程序是否完整。

步骤1:单击图像中显示的导航项目,然后单击丢失的文件

第2步:在第二张图片中单击“添加”

现在运行项目,您的项目将在Full iPhone 5屏幕或模拟器中运行。

在此处输入图像描述

我有同样的问题,部分屏幕没有响应用户交互。 选择MainWindow.xib上的“启动时全屏”选项为我修复了它。

无论我做了什么,我都无法全屏显示我的应用。

但是在我将一个文件“Default-568@2x.png”添加到我的应用程序之后。现在所有的xib都运行全屏。你可以通过在XCode中创建一个新的应用程序并复制创建的黑色png来快速测试。

如果您使用XCode 6.1,请尝试此解决方案(对于没有完整图像集的项目):

  1. 项目 – >目标 – >常规 – >应用程序图标和启动图像 – >启动屏幕文件
  2. 选择xib作为第一个屏幕。

你试过这个吗?

iOS模拟器>硬件>设备> iPhone(Retina 4英寸)

我遇到了同样的问题,这就是我解决的问题。

你是如何将主viewController添加到窗口的? iOS6中不再支持仅将视图添加为子视图。

除了我博客上关于使应用程序在iPhone 5屏幕尺寸上工作的文章之外,这里有一个。

使用window.rootViewController添加初始视图

首先,如果您在代码中构建初始视图,请确保使用window.rootViewController将初始视图添加到窗口,而不是将视图添加为子视图的旧方法。 如果您不这样做,自动旋转将无法在iOS 6下为您的应用程序运行。

这是一个例子:

 navigationController = [[UINavigationController alloc] initWithRootViewController: myRootVC]; //[window addSubview:[navigationController view]]; Don't do this! window.rootViewController = navigationController; // Do this instead! 

更多信息,请访问http://pervasivecode.blogspot.co.uk/2012/09/making-apps-work-on-iphone-5-screen-size.html

通过LongPress并在重新运行的模拟器上删除应用程序。

经过4英寸视网膜调整,这对我有用。 一切都按照我在IB中拼接的方式自动resize。

请为应用程序添加启动屏幕。

我们在iOS 8上测试的iOS 6天内创建了一个类似的问题。

我们的修复是在MainWindow.xib上设置“隐藏”标志。

这就是我们在这里发现修复的方法。

同样的事情发生在我身上。 我试图制作一个video启动画面,由于我无法控制启动画面的显示时间,因此无法显示完整的video,我不得不制作一个假的启动画面,这只是一个控制器,首先显示然后删除。 无论我尝试什么,该控制器的视图都没有显示为全屏。 最后,我发现它发生了,因为我没有飞溅图像。

解决方案:为项目添加启动画面(即使它们只是黑色图像),应修复全屏问题。