16

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

知道除了这些事情之外我应该做什么才能看到我的应用程序在 iOS 6.0 Simulator 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 Full Screen,但仍然 - 同样的事情。


[编辑#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 分辨率大小的新 UIView,分配了相同的所有者类,这些所有者类正在处理为 iPhone 5 之前的分辨率制作的等效 UIView,并且在代码中我需要在哪里加载我检查的其中一些 UIView [ UIScreen mainScreen].borders 来确定当前运行我的应用程序的设备。通过这种方式,我设法让事情顺利进行。

但是,主要问题仍然存在 - 为什么在我完成我提到的所有这些事情之后,我的所有 UIView 都没有自动拉伸到新的分辨率?

无论如何,赏金活动会持续 5 或 6 天。如果有人设法解决这个问题,我将不胜感激。如果没有,我将赏金@onegray,因为那是我一开始没有处理的事情,而在我目前的实现中,它真的很重要。

最好的祝福。


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

正如@ user1702985建议的那样,我在取消选择时打开了这个选项。但没有运气

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


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

这个自动调整大小选项是为我所有的 UIViews 和它的元素设置的。

在此处输入图像描述


[编辑#8:启动时全屏选项的解释]

MainWindow.xib 属性。

在此处输入图像描述

4

11 回答 11

21

我希望这会对您有所帮助,但不确定您是否会在全屏下获得触摸效果,因此您必须检查您的应用程序的全触摸。

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

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

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

在此处输入图像描述

于 2012-09-29T13:09:10.303 回答
9

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

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

于 2012-09-24T08:12:38.287 回答
5

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

于 2012-09-27T10:28:24.653 回答
4

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

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

于 2012-09-26T03:32:27.683 回答
2

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

  1. 项目 -> 目标 -> 常规 -> 应用程序图标和启动图像 -> 启动屏幕文件
  2. 为第一个屏幕选择 xib。
于 2014-12-05T21:13:16.593 回答
1

你试过这个吗?

iOS 模拟器 > 硬件 > 设备 > iPhone(Retina 4-inch)

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

于 2012-11-18T18:11:05.263 回答
0

您如何将主视图控制器添加到窗口?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

于 2012-09-20T08:44:02.530 回答
0

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

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

于 2012-09-28T02:43:37.363 回答
0

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

于 2014-12-18T05:31:03.497 回答
0

在 iOS 8 上测试时,我们在 iOS 6 天创建的应用程序上遇到了类似的问题。

我们的解决方法是在 MainWindow.xib 上设置“隐藏”标志。

这就是我们在这里找到修复的方式。

于 2015-01-09T17:11:22.580 回答
0

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

解决方案:将启动画面添加到您的项目中(即使它们只是黑色图像),并且应该修复全屏问题。

于 2015-02-11T13:37:29.060 回答