2010-12-08 141 views
5

我一直在环顾四周,它的答案似乎不是,但帖子是过时的,所以我想知道这是否改变了。是否可以将状态栏设置为半透明?我试图在多点触控上点击淡入/淡出效果,但状态栏一直呈现为纯黑色。半透明状态栏(iPhone/iPad/iPod Touch)

谢谢!编辑 - 我用于事件转换的代码如下。我已经设置了状态栏在-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

喜欢的东西这个?

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackTranslucent; 
+0

不幸的不是。我正在使用[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];这似乎忽略了任何风格设置,以支持黑色不透明。 :( – Eric 2010-12-08 23:32:41

14

设置的UIApplication状态栏样式:

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

视图控制器在状态栏半透明还应480分占据了320的整个屏幕尺寸的视图。通过这种方式,视图在状态栏下方显示,前20个像素中的任何内容都将在状态栏下半透明。

如果您的视图中没有任何部分占据前20个像素,则它将显示为下方的黑色。

编辑:如果您正在使用iPad,正如Steven Fisher指出iPad不支持半透明黑色状态栏。它总是黑色。

+0

是的,一切都设置好了,这样一旦我能够让它变成半透明的,它就会有内容。不幸的是,这种方法并没有做任何事情,我注意到你提到320×480的尺寸,关于iPhone/iPod Touch,我还没有在应用程序的那部分工作,因为主要(可能只有)设备使用这个是iPad。 – Eric 2010-12-09 00:29:39