14

我有一个奇怪的,我似乎无法修复。我目前正在将我的应用程序更新到 iOS7。这一切都适用于iOS6。它是一个通用应用程序,因此使用相同的 xib 文件。然而,iPad 在某些设备上使用 UISplitViews。就像我说的,这一切都适用于 iOS6 哦,这也适用于 iPhone。

问题是底部的灰色条。我将选项卡栏更改为不透明以正确向上移动视图,因为我将一些 UI 剪辑到视图底部并且位于选项卡栏下方,在那里被转移。但是如果我将它设置回半透明条,它会在下面但正确拉伸。如果我不这样做,它会增加一个酒吧。不使用拆分视图时,其他选项卡工作正常。

UISplitviewController 以编程方式添加。

请参阅附图以获得更好的描述。

灰色条在我的 splitview 和 tabbar 之间

这是我试过的:

  • 在拆分视图上添加了自动调整大小
  • 检查了拆分视图中的子视图的 xib 以自动调整大小
  • 试图强制拆分视图成为屏幕边界
  • 删除了所有视图边界的剪辑
  • 删除了自动调整大小的子视图

任何想法都会受到欢迎。

谢谢你们。

更新:

将背景颜色设置为 uisplitview,它确实将条形图着色为黑色。所以 uisplitview 肯定会延伸到它。

4

4 回答 4

31

我将 UISplitViewController 子类化并将下面的行添加到 viewDidLoad 并修复了灰线。

self.extendedLayoutIncludesOpaqueBars = YES;
于 2013-10-07T17:12:23.473 回答
5

我相信我已经为您找到了替代解决方案。我遇到了完全相同的问题,主要是因为我们都在做一些违反 Apple 指南的事情,该指南将 SplitViewController 嵌套在 Tabbar 控制器中(SplitView 应该是根视图)。这在 iOS 5/6 中是可以的,但现在在 iOS 7 中实现这一点的副作用太多了。

当您将栏设置为半透明时,您看到视图完全拉伸的原因是因为在绘制视图时没有考虑到该栏。当您将 translucent 设置为 false 时,它​​会被考虑到视图中,您将在那里看到那个灰色条,因为这是您的视图,假装屏幕底部有一个标签栏。

和往常一样,SplitViewcontroller 的高度不能更改,因为它是由可见窗口高度决定的。

我尝试了你所做的一切,然后又尝试了一些。真正的解决方案来自使用第三方拆分视图控制器。

我建议切换到https://github.com/mattgemmell/MGSplitViewController。这个拆分视图控制器实际上是一个大视图,其中包含容器视图。因此,您可以避免将实际的拆分视图控制器放在选项卡栏中的所有副作用。

如果这不能让您的船浮起来,您可以创建自己的解决方案,该解决方案遵循相同的想法,即拥有一个包含两个容器视图的 UIViewController,尽管 MGSplitViewController 背后的人已经做得很好。

这是我能够解决此问题的唯一方法,如果您找到替代方法,请告诉我。

于 2013-10-03T17:59:16.613 回答
2

我没有为我创建一个子类UISplitViewController,而是在我的主人身上添加了这段代码viewDidLoad

self.splitViewController?.extendedLayoutIncludesOpaqueBars = true
于 2015-07-12T20:36:41.700 回答
0

对于作为 UISplitViewController 详细视图的控制器,您只需执行以下操作:

-(UITabBarController*)tabBarController{
    return nil;
}
于 2014-06-13T10:48:02.630 回答