UITplitView与UITabbar
我有一个奇怪的,我似乎无法修复。 我目前正在更新我的应用程序到iOS7。 这一切都在iOS6中工作。 这是一个通用的应用程序,因此使用相同的xib文件。 然而,iPad使用一些UISplitViews。 就像我说的,这一切都在iOS6工作哦,这一切都在iPhone上工作。
问题是底部的灰色条。 我改变了标签栏是不透明的,以便正确地移动视图,因为我有一些用户界面被剪切到视图的底部,并且在标签栏下面,在那里。 但是,如果我把它放回到半透明的酒吧,它下面,但正确拉伸。 如果我不,它添加一个酒吧。 其他选项卡工作正常时,不使用splitview。
UISplitviewController是以编程方式添加的。
请参阅附加图片以获得更好的描述
我曾试过:
- 增加了对splitview的自动调整
- 检查xib在splitviews子视图有自动resize
- 试图强制splitview屏幕界限
- 删除了所有视图的边界
- 删除了autoresize子视图
任何想法都会受到欢迎。
谢谢你们。
更新:
将背景颜色设置为uisplitview,它会使黑色变成黑色。 所以uisplitview肯定会延伸到它。
我subclassed UISplitViewController并将下面的行添加到viewDidLoad,并修复了灰线。
self.extendedLayoutIncludesOpaqueBars = YES;
我相信我find了替代解决scheme。 我有完全相同的问题,主要是因为我们都在做反对苹果的指导方针有一个嵌套在Tabbar控制器(SplitView应该是根视图)的SplitViewController。 这在iOS 5/6中是可以的,但现在iOS 7中有太多的副作用来实现这一点。
当您将条设置为半透明时,您看到视图完全伸展的原因是因为在绘制视图时不考虑该条。 当你设置半透明为假,然后考虑到视图,你会看到那里的灰色条,因为这是你的视图假装在屏幕底部有一个标签栏。
和往常一样,SplitViewcontroller的高度不能被改变,因为它是由可见的窗口高度决定的。
我试过你所做的一切,然后一些。 真正的解决scheme来自使用第三方分割视图控制器。
我build议切换到https://github.com/mattgemmell/MGSplitViewController 。 这个分割视图控制器实际上是一个大视图,里面有容器视图。 正因为如此,您可以避免将一个实际的分割视图控制器放在标签栏中的所有副作用。
如果这不能让你的船漂浮,你可以创build你自己的解决scheme,它遵循同一个UIViewController的概念,它包含两个容器视图,尽pipeMGSplitViewController背后的人已经做了很好的工作。
这是我能够解决这个问题的唯一方法,让我知道如果你find一个替代scheme。
我没有为UISplitViewController
创build一个子类, UISplitViewController
在主控的viewDidLoad
上添加了这个代码:
self.splitViewController?.extendedLayoutIncludesOpaqueBars = true
对于UISplitViewController的详细视图的控制器,你可以这样做:
-(UITabBarController*)tabBarController{ return nil; }