无法在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,请尝试此解决方案(对于没有完整图像集的项目):
- 项目 – >目标 – >常规 – >应用程序图标和启动图像 – >启动屏幕文件
- 选择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,我不得不制作一个假的启动画面,这只是一个控制器,首先显示然后删除。 无论我尝试什么,该控制器的视图都没有显示为全屏。 最后,我发现它发生了,因为我没有飞溅图像。
解决方案:为项目添加启动画面(即使它们只是黑色图像),应修复全屏问题。