6

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

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

4

6 回答 6

6

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

    UIView *coverView = [[UIView alloc] initWithFrame:CGRectMake(320, 0, 1, 64)];
    [coverView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"black_pixel.png"]]];
    [splitViewController.view addSubview:coverView];
于 2013-10-31T08:16:27.503 回答
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)
        }
    }
}
于 2015-06-26T20:40:14.950 回答
1

像这样使用容器视图添加您UISplitViewController的额外内容:ViewController

截屏

UINavigationBar然后在 master 和 detail 中隐藏s,在额外的 UIViewControllerviewControllers中将只有一个没有白线。UINavigationBar

截屏

于 2017-09-29T07:05:11.867 回答
0

尝试这个:

if ( floor(NSFoundationVersionNumber) > NSFoundationVersionNumber_iOS_6_1 ) {
    splitViewController.view.backgroundColor = [UIColor blackColor];
}
于 2014-01-28T10:57:24.710 回答
0

利用

splitViewController?.view.backgroundColor = UIColor.clear

在您的 tableviewcontroller(主视图控制器)中,您也可以设置所需的颜色。

于 2017-10-10T03:23:00.840 回答
-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];
}
于 2014-02-20T23:27:40.190 回答