【问题标题】:Hard time setting color on status bar (iOS7) with transparency在具有透明度的状态栏(iOS7)上很难设置颜色
【发布时间】:2014-11-03 03:03:33
【问题描述】:

我希望我的状态栏是黑色的并且透明 25%。我知道状态栏默认是透明的,因此呈现背景颜色。但是,当我设置视图背景颜色时:

self.view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:.75f];

状态栏全黑。

我有一个工具栏,我将其设置为黑色,alpha 为 0.75,我只是想让它们匹配:

self.toolBar.tintColor = [UIColor whiteColor];
self.toolBar.barTintColor = [UIColor blackColor];
self.toolBar.alpha = .75f;

UIView 上的背景颜色不尊重 alpha 组件的任何原因?

编辑:

根据评论,视图不重叠状态栏。如果我将背景设置为绿色,则表明它可以工作:

但是,如果我开始为绿色添加透明度,它不会变亮而是变暗。似乎在我唯一的 UIView 下默认是黑色的,而不是白色的。

self.view.backgroundColor = [[UIColor greenColor] colorWithAlphaComponent:.25];

【问题讨论】:

    标签: ios uiviewcontroller ios7-statusbar


    【解决方案1】:

    iOS 7 中的状态栏是完全透明的。问题可能是您的视图和工具栏未正确覆盖状态栏。所以你看到它后面的黑色窗口。 (或者,事实上,您可能错误地设置了窗口的大小,在这种情况下,您在状态栏后面什么都看不到。)

    如果视图确实在状态栏下方,那么您需要将工具栏的栏位置设置为顶部附加,以便其高度在状态栏下方增加。我们不应该看到状态栏的单独颜色;它应该会覆盖您的界面,位于工具栏顶部的前面。

    【讨论】:

    • 我在这里解释了顶部栏的栏定位:stackoverflow.com/a/22232805/341994 这个答案是关于导航栏的,但它与 iPad 上的顶部工具栏完全平行。
    • 我不明白你的意思。如果我将视图的背景颜色设置为绿色,则状态栏为绿色。但是由于某种原因,绿色下面有黑色。因此,如果我将其设置为绿色且 alpha 为 0.25,则它是深绿色,因为黑色正在透出。即使我摆脱了工具栏,只使用一个填充整个屏幕的空白视图,我也无法以 0.75 的透明度变黑。
    • 我已经告诉过你原因了。这是因为窗户后面是黑色的。在黑色上带有 0.25 的 alpha 的绿色是深绿色。 - 但是,我的答案仍然是正确的。如果您的视图实际上位于状态栏的下方,那么它应该看起来 像它。您不应该有单独的状态栏颜色; 工具栏 应该在状态栏下方,我已经向您解释了如何做到这一点。您的第二个和第三个屏幕截图错误。专注于修复工具栏高度,一切都会好起来的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    相关资源
    最近更新 更多