我有一个我似乎无法解决的奇怪问题。我目前正在努力将我的应用更新到iOS7。这一切都在iOS6中有效。它是一个通用应用程序,因此使用相同的xib文件。然而,iPad在某些上使用了UISplitViews。就像我说的,这一切都适用于iOS6哦,这一切都适用于iPhone。
问题是底部是灰色条。我将标签栏更改为不透明以正确移动视图,因为我将一些UI剪切到视图底部并且位于标签栏下方,在那里进行了侧移。但是,如果我将它设置回半透明条,它会在下方但正确拉伸。如果我不这样做,它会添加一个条形码。其他标签在不使用splitview时工作正常。
以编程方式添加UISplitviewController。
有关更好的说明,请参阅附图。
我试过了:
任何想法都会受到欢迎。
谢谢大家。
更新:
将uisplitview的背景颜色设置为黑色。所以uisplitview肯定会延伸到它。
答案 0 :(得分:31)
我将UISplitViewController子类化,并将下面的行添加到viewDidLoad并修复了灰线。
self.extendedLayoutIncludesOpaqueBars = YES;
答案 1 :(得分:5)
我相信我已经找到了替代解决方案。我遇到了完全相同的问题,主要是因为我们都在针对Apple的指南做了一些事情,它有一个嵌套在Tabbar控制器中的SplitViewController(SplitView应该是根视图)。这在iOS 5/6中没问题,但现在在iOS 7中有太多的副作用来实现这一点。
当您将条形图设置为半透明时,您看到视图完全拉伸的原因是因为绘制视图时不考虑条形图。当你将半透明设置为false时,它会被考虑在视图中,你会看到那里的灰色条,因为你的视图假装在屏幕底部有一个标签栏。
与往常一样,SplitViewcontroller的高度无法更改,因为它由可见窗口高度决定。
我尝试了你所做的一切,然后是一些。真正的解决方案来自使用第三方拆分视图控制器。
我建议切换到https://github.com/mattgemmell/MGSplitViewController。这个拆分视图控制器实际上是一个大视图,其中包含容器视图。因此,您可以避免将实际拆分视图控制器放在标签栏中的所有副作用。
如果这不会漂浮你的船,你可以创建自己的解决方案,遵循相同的想法,让一个UIViewController包含两个容器视图,虽然MGSplitViewController背后的人已经做得很好。
这是我能够解决这个问题的唯一方法,如果您找到替代方案,请告诉我。
答案 2 :(得分:2)
我没有为UISplitViewController
创建子类,而是在我的主人viewDidLoad
上添加了此代码:
self.splitViewController?.extendedLayoutIncludesOpaqueBars = true
答案 3 :(得分:0)
对于作为UISplitViewController详细视图的控制器,您只需执行以下操作:
-(UITabBarController*)tabBarController{
return nil;
}