【问题标题】:White transparent toolbar, how do I make status bar match白色透明工具栏,如何使状态栏匹配
【发布时间】:2014-11-26 16:15:35
【问题描述】:

使用 xcode6 和故事板

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

我已将工具栏的背景颜色设置为 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 枚举,我可以将我的视图设置为工具栏委托。我这样做了:

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

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

似乎将工具栏附加到状态栏以使状态栏作为工具栏的背景不应该这么难,即我真的必须创建一个额外的 20 点高视图来实现这一点吗?即使这样看起来我做错了,当我添加按钮时,我的工具栏透明度又恢复为不透明。

【问题讨论】:

    标签: ios statusbar uitoolbar uistatusbar


    【解决方案1】:

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

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

    将您的视图设置为工具栏的委托并实现此委托方法:

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

    或者在情节提要中在 UIToolbar 上设置用户定义的运行时属性:

    barPosition 编号 3

    【讨论】:

      【解决方案2】:

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

      toolbar.clipsToBounds = YES;
      

      【讨论】:

      • 可以在 IB/storyboard 中设置吗?
      • 在用户定义的运行时属性中设置它。工作就像一个魅力,谢谢!
      • 我看不出来,有一个剪辑子视图复选框,但这并没有解决它。您也许可以从导航控制器访问工具栏,这取决于您如何实现它。
      猜你喜欢
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多