我在iOS7上的UISplitviewController中的导航栏之间看到一个白色分隔符。 我找不到将其改为黑色的方法。我将splitViewController视图的backgroundColor更改为黑色,但没有运气。
屏幕截图:http://cl.ly/SCcu
答案 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
容器视图中,如下所示:
然后在主人和详细信息UINavigationBar
中隐藏viewControllers
,并且在其他UIViewController中只有一个UINavigationBar
没有白线。
答案 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];
}