半透明状态栏 (iPhone/iPad/iPod Touch)

5
我一直在寻找答案,但似乎答案是否定的,但这些帖子的日期比较早,所以我想知道情况是否有所改变。是否可以将状态栏设置为半透明?我正在尝试在多点触控中使用淡入/淡出效果,但状态栏仍然是纯黑色。

谢谢!

-- 编辑 -- 我正在使用以下事件转换的代码。我已经在-info.plist中将状态栏设置为半透明,但我注意到IB中没有黑色半透明设置(这可能是我的答案:除非你是苹果,否则没有半透明状态栏)。

-(IBAction)showOptions:(id)sender
{
if ([UIApplication sharedApplication].statusBarHidden == YES) {
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
    [UIView beginAnimations:@"fadeIn" context:nil];
    [UIView setAnimationDuration:0.25];
    [UIView setAnimationCurve:UIViewAnimationCurveLinear];
    optionsView_portrait.alpha = 0.5;
    [UIView commitAnimations];
}
else
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
    [UIView beginAnimations:@"fadeOut" context:nil];
    [UIView setAnimationDuration:0.25];
    [UIView setAnimationCurve:UIViewAnimationCurveLinear];
    optionsView_portrait.alpha = 0.0;
    [UIView commitAnimations];
}
}
2个回答

14

设置 UIApplication 的状态栏样式:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent
                                            animated:YES];

当状态栏是半透明的时候,视图控制器的视图应该占据整个屏幕尺寸320x480pt。这样,视图会被状态栏遮挡住,顶部20像素内的任何内容都会在状态栏下方半透明可见。

如果你的视图没有占据顶部20像素的部分,它会显示为黑色。

编辑:如果你正在使用iPad,正如Steven Fisher所指出的,iPad不支持半透明黑色状态栏。它始终是纯黑色的。


是的,一切都已经准备好了,一旦我能将其变为半透明状态,它就会有内容。不幸的是,这种方法也没有起作用。我注意到你提到了 320 x 480 的尺寸,这是关于 iPhone/iPod Touch 的。由于主要(可能是唯一)使用此应用程序的设备是 iPad,因此我还没有处理这部分应用程序。 - Eric
2
在iPad上无法拥有半透明的状态栏。 - Steven Fisher
是的,我本来希望最新的SDK已经改变了这一点。看起来我只能自己动手了 :P - Eric
BBC News iPad 应用程序在播放视频时具有半透明的状态栏。 - aeldron

2
像这样的吗?
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackTranslucent;

很遗憾,不是的。我正在使用[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade]; 这似乎会覆盖任何风格设置,以黑色不透明为优先。:( - Eric

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接