ios - 白色透明工具栏,如何使状态栏匹配

标签 ios statusbar uitoolbar uistatusbar

使用 xcode6 和 Storyboard

我的 View 顶部有一个工具栏。工具栏下方是一个 map View 。 map View 在我想要的状态栏下延伸。基本上我希望工具栏和状态栏有点透明~20%,这样你就可以看到下面的 map View 。

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

据我所知,状态栏是 100% 透明的,这意味着它会显示其下方的任何 View 。我试图在我的工具栏上方添加一个 20 点高的 View ,并将其设置为白色,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

编辑 2 所以我刚刚发现了 UIBarPositionTopAttached 枚举,我可以将我的 View 设置为工具栏委托(delegate)。我这样做了:

  • (UIBarPosition)positionForBar:(id )bar { 返回 UIBarPositionTopAttached;

并验证它被调用了。我希望这会告诉 iOS 我的工具栏已附加到状态栏,并且我的工具栏颜色和所有内容都会流入状态栏。不也是这样吗?

似乎将工具栏附加到状态栏,使状态栏成为工具栏的背景应该不难,也就是说,我真的必须创建一个额外的 20 点高 View 才能实现这一点吗?即使看起来我做错了,因为当我添加按钮时,我的工具栏透明度又变回不透明。

最佳答案

UIToolbar 顶部有细线阴影。如果您设置 bounds clipping 属性,它将隐藏该行。

toolbar.clipsToBounds = YES;

关于ios - 白色透明工具栏,如何使状态栏匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26147868/

相关文章:

android - 有没有办法检查状态栏的可见性?

iphone - 如何使工具栏字体与 UINavigationController 匹配?

iphone - NSFileWrapper 基础知识 : How to extract components

WPF 状态栏,拉伸(stretch)文本 block 以占用尽可能多的空间

ios - Swift:TextView 字体在模拟器和 iPhone 中的行为不同

iphone-sdk-3.0 - UIScrollView 在导航和状态栏下方移动

ios - 如果设备支持视网膜显示,如何在通用应用程序上将 UIToolbar 按钮图标更改为高分辨率?

ios7 - 显示/隐藏 UIToolbar, "match finger movement",例如 iOS7 Safari

ios - NSKeyedArchiver 和 Apple 上传

ios - 转到特定的标签栏 View