我有一个通用的iOS应用程序,目前我正在为iPad开发它。 当我在纵向模式下启动应用程序应用程序启动正常。但是当我以横向模式启动时,屏幕的一部分会变回,并且应用程序不会以横向模式启动。我用过
-(NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskAll; }
- (BOOL)shouldAutorotate {
return YES;}
但该应用程序没有以限制模式启动并且具有黑屏部分。我也附上了一个屏幕截图。。这里有什么问题以及如何摆脱这个问题?
答案 0 :(得分:2)
试试这个,在ViewDidLoad
中写一下,我们需要设置self.view
的插图
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
{
self.edgesForExtendedLayout=UIRectEdgeNone;
}
答案 1 :(得分:1)
由于您的视图正确旋转(文本是直立的),您可以认为此问题不是旋转问题,而是布局代码/界面构建器的问题。
要解决此问题,请确保将内容视图固定到其超级视图的所有边缘
答案 2 :(得分:1)
当iOS8出现时,我遇到了同样的问题。 iOS7一切都运行良好。花了很多时间尝试解决后我发现用故事板替换“启动xib”可以解决我的问题。
因此,尝试添加故事板,将实际的初始xib放入并重新启动。不要忘记在项目的信息中指定inizial storyboard。
答案 3 :(得分:1)
注意,你可能在iPhone6 +上也有这个问题,因为它能够在横向上运行跳板。
我很少(几乎从不)使用故事板或笔尖,所以我遇到了这个问题,因为iOs7在支持旋转的应用程序中。我在loadView或viewDidLoad中设置了viewControllers,此时viewController不知道interfaceOrientation。因为我通常以编程方式处理旋转,所以我只是在viewWillAppearAnimated中执行类似的操作:
{
BOOL landscape = UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication]statusBarOrientation]);
BOOL ios8 = NSClassFromString(@"UIPopoverPresentationController")!=NULL;
if (landscape&&ios8) {
[self willRotateToInterfaceOrientation:[[UIApplication sharedApplication]statusBarOrientation] duration:0.0];
}
}
答案 4 :(得分:0)
通过为我的应用程序设置UIMainStoryboardFile解决了类似的问题(尽管这对我的应用程序没有副作用,因为我在代码中设置了ViewControllers)。因此,设置主要故事板文件已针对iOS 8至10修复了该问题。
因此,请同时设置启动屏幕和主界面情节提要。
设置NSMainNibFile并没有为我解决该问题。只有情节提要。
主故事板至少应包含初始视图控制器,该控制器可能为空。
答案 5 :(得分:-1)
在appDelegate中,设置:
[self.window setFrame:[[UIScreen mainScreen] bounds]];