使用xcode6和故事板
我的工具栏位于我的视图顶部。工具栏下面是mapview。地图视图在状态栏下展开,这就是我想要的。基本上我希望工具栏和状态栏有点透明~20%,这样你就可以看到下面的mapview。
我已将工具栏的背景颜色设置为白色80%不透明。但是我不知道如何让状态栏完全相同。
根据我所知道的,状态栏是100%透明的,这意味着它将显示其下方的任何视图。我试图在我的工具栏上方添加一个20点高的视图,我已将其设置为白色,80%透明。这几乎达到了我想要的效果,但工具栏和状态栏之间有一条黑线,
我是否走在正确的轨道上?如何使工具栏颜色和透明度与状态栏颜色和透明度相匹配,并避免使用该行?
修改:
clipsToBounds非常适合删除该行。
我以编程方式添加了一个按钮:
-(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];
}
在我添加该按钮后,我的工具栏背景变回白色:
编辑2 所以我刚刚发现了UIBarPositionTopAttached枚举,我可以将我的视图设置为工具栏委托。我这样做了:
并确认它已被调用。我希望这会告诉iOS我的工具栏已附加到状态栏,我的工具栏颜色和所有工具都将流入状态栏。那不是这样吗?
似乎将工具栏附加到状态栏,以便状态栏采用工具栏的背景不应该这么难,即我是否真的必须创建一个额外的20点高视图来实现这一目标?即使这样看起来我做错也是如此,因为当我添加按钮时,我的工具栏透明度会变回不透明。
答案 0 :(得分:3)
UIToolbar顶部有一个发际线阴影。如果设置bounds裁剪属性,它将隐藏该行。
toolbar.clipsToBounds = YES;
答案 1 :(得分:0)
虽然剪辑到边界效果很好,但我认为这个问题的正确答案是在工具栏上使用barPosition。
有几种方法可以做到这一点:
将您的视图设置为工具栏的委托并实现此委托方法:
- (UIBarPosition)positionForBar:(id <UIBarPositioning>)bar {
return UIBarPositionTopAttached;
}
或者在故事板中在UIToolbar上设置用户定义的运行时属性:
barPosition Number 3