UISplitviewController导航栏之间的白线

时间:2013-10-29 16:27:59

标签: ios7 uisplitviewcontroller

我在iOS7上的UISplitviewController中的导航栏之间看到一个白色分隔符。 我找不到将其改为黑色的方法。我将splitViewController视图的backgroundColor更改为黑色,但没有运气。

屏幕截图:http://cl.ly/SCcu

6 个答案:

答案 0 :(得分:6)

只要您的屏幕位于横向,您就可以将其用作解决方法:

    UIView *coverView = [[UIView alloc] initWithFrame:CGRectMake(320, 0, 1, 64)];
    [coverView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"black_pixel.png"]]];
    [splitViewController.view addSubview:coverView];

答案 1 :(得分:5)

在幕后,屏幕顶部有一个UILayoutContainerView,位于主视图和详细视图下方。要更改导航栏之间的分隔符颜色,只需更改该视图的背景颜色。

在Swift中,在SplitViewController的子类中,尝试以下操作:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    if let potentialSeparatorView = view.subviews.first as? UIView {
        if round(potentialSeparatorView.bounds.height) == 64 {
            potentialSeparatorView.backgroundColor = UIColor(red:0.20, green:0.55, blue:0.83, alpha:1)
        }
    }
}

答案 2 :(得分:1)

UISplitViewController放入其他ViewController容器视图中,如下所示:

screenshot

然后在主人和详细信息UINavigationBar中隐藏viewControllers,并且在其他UIViewController中只有一个UINavigationBar没有白线。

screenshot

答案 3 :(得分:0)

试试这个:

if ( floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1 ) {
    splitViewController.view.backgroundColor = [UIColor blackColor];
}

答案 4 :(得分:0)

使用

splitViewController?.view.backgroundColor = UIColor.clear
在tableviewcontroller(主视图控制器)中

,您也可以设置所需的颜色。

答案 5 :(得分:-1)

您可以执行以下操作以消除该白线:

self.splitViewController.view.backgroundColor = [UIColor blackColor];
for (UIView *subView in self.splitViewController.view.subviews) {
    subView.backgroundColor = [UIColor blackColor];
} 

如果你没有直接访问它的自定义方式来获取splitViewController:

UIViewController *_splitViewController = self.parentViewController;
while (![_splitViewController isKindOfClass:[UISplitViewController class]]) {
    _splitViewController = _splitViewController.parentViewController;
}
_splitViewController.view.backgroundColor = [UIColor blackColor];
for (UIView *subView in ((UISplitViewController *)_splitViewController).view.subviews) {
    subView.backgroundColor = [UIColor blackColor];
}