2014-10-01 115 views
0

使用xcode6和故事板白色透明工具栏,我如何使状态栏匹配

我有一个工具栏,在我的视图的顶部。在工具栏下是一个mapview。地图视图在我想要的状态栏下扩展。基本上我希望工具栏和状态栏有点透明〜20%,这样你就可以看到下面的mapview。

我已经将我的工具栏的背景颜色设置为白色80%不透明。但是我不知道如何让状态栏变成完全一样的东西。

从我所知道的一切来看,状态栏是100%透明的,这意味着它会显示下面的任何视图。我试图在我的工具栏上添加一个20点高度的视图,并将其设置为白色,80%透明。这几乎实现了,我要达到相同的效果,但有工具栏和状态栏之间的黑线,

enter image description here

上午我甚至在正确的轨道?如何使工具栏颜色和透明度与状态栏颜色和透明度相匹配并避免该行?

编辑

clipsToBounds在消除行伟大的工作。

enter image description here

我加入编程按钮:

-(void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)button forPopoverController:(UIPopoverController *) pc { 
    button.image = [UIImage imageNamed:@"bars"]; 

    NSMutableArray *items = [self.toolbar.items mutableCopy]; 
    if (!items) { 
     items = [NSMutableArray arrayWithObject:button]; 
    } else { 
     [items insertObject:button atIndex:0]; 
    } 

    [self.toolbar setItems:items]; 
} 

后,我补充一点按钮我的工具栏背景变为白回来:

enter image description here

EDIT 2 所以我刚刚发现了UIBarPosit ionTopAttached枚举,我可以将我的视图设置为工具栏委托。我这样做:

  • (UIBarPosition)positionForBar:(ID)栏{ 回报UIBarPositionTopAttached; }

并验证它被调用。我希望这会告诉iOS,我的工具栏连接到状态栏,并且我的工具栏颜色和全部都会流入状态栏。那也不是这种情况吗?

似乎将工具栏附加到状态栏,使状态栏占据工具栏的背景不应该很难,也就是说我是否真的必须创建一个额外的20点高视图来实现这一点?即使这样看起来像我做错了,因为当我添加按钮我的工具栏透明度回到不透明。

回答

3

UIToolbar在顶部有一个发际线阴影。如果您设置边界剪辑属性,它将隐藏该行。

toolbar.clipsToBounds = YES; 
+0

可能在IB/storyboard中设置? – lostintranslation 2014-10-01 21:00:22

+0

将其设置为用户定义的运行时属性。像魅力一样工作,谢谢! – lostintranslation 2014-10-01 21:06:04

+0

不是我可以做出来的,有一个剪辑子视图复选框,但是没有解决它。您可能能够从导航控制器访问工具栏,这取决于您如何实施它。 – 2014-10-01 21:06:48

0

虽然剪辑到界限效果很好,但我认为这个问题的正确答案在工具栏上使用barPosition。

有几个方法可以做到这一点:

设置您的视图作为代表到工具栏和实现这个委托方法:

- (UIBarPosition)positionForBar:(id <UIBarPositioning>)bar { 
    return UIBarPositionTopAttached; 
} 

或者在设置用户自定义运行一个故事板属性上在UIToolbar:

barPosition 3号

enter image description here