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

时间:2012-09-20 08:32:37

标签: iphone ios ios-simulator ios6

我已将 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那里没有反应的反应)。基本上,我所做的只是使我的视图以全分辨率显示,但视图中元素的功能仅限于我第一次在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 ,我取消选中此选项开启。但没有运气

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


[编辑#7:自动调整设置选项]

为我的所有UIView及其元素设置了自动调整大小选项。

enter image description here


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

MainWindow.xib属性。

enter image description here

11 个答案:

答案 0 :(得分:21)

我希望这会帮助你但不确定你会全屏触控效果, 因此,您必须检查您的应用程序的完整触摸。

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

步骤2:在第二张图片中点击添加

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

enter image description here

答案 1 :(得分:9)

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

更新:
如果没有源代码,很难猜出问题出在哪里。 我创建了simple app stub to test interface orientation for iPhone4/iPhone5。我刚刚创建了新的“单视图应用程序”,在根视图中添加了一些子视图,并添加了“默认”图像。我在Xcode 4.3.2中完成了它,没有Xcode 4.5.的任何额外功能而且app会自动将屏幕拉伸到适当的大小(对于portrait/landscape两个方向)。

答案 2 :(得分:5)

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

答案 3 :(得分:4)

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

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

答案 4 :(得分:2)

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

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

答案 5 :(得分:1)

你试过这个吗?

iOS模拟器>硬件>装置> iPhone(Retina 4英寸)

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

答案 6 :(得分:0)

如何将主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

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

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

这就是我们发现修复here的方式。

答案 10 :(得分:0)

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

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