2011-12-27 71 views
0

当用户点击屏幕时,我需要状态栏淡出,我想知道这是否可以使用核心动画。我已经设置了状态栏,如下所示:可能使状态栏消失/使用Core Animation解散?

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

当我使用UIView动画时,我将[[UIApplication sharedApplication] setStatusBarHidden:NO];放置在UIView animateWithDuration块中,使其解散。然而,当我使用的Core Animation,它不工作:

[CATransaction begin]; 
CABasicAnimation *fader = [CABasicAnimation animationWithKeyPath:@"opacity"]; 
[fader setDuration:2.0]; 
[fader setFromValue:[NSNumber numberWithFloat:.75]]; 
[fader setToValue:[NSNumber numberWithFloat:0]]; 
[[[[self tabBarController] tabBar]layer]addAnimation: fader forKey:@"BigFade"]; 

CABasicAnimation *fader2 = [CABasicAnimation animationWithKeyPath:@"opacity"]; 
[fader2 setDuration:2.0]; 
[fader2 setFromValue:[NSNumber numberWithFloat:1]]; 
[fader2 setToValue:[NSNumber numberWithFloat:0]]; 
[[[[self navigationController] navigationBar]layer]addAnimation: fader2 forKey:@"BigFade2"]; 

[[UIApplication sharedApplication] setStatusBarHidden:YES]; 
[CATransaction commit]; 

如何得到这个核心动画(我需要使用的Core Animation,而不是UIView的动画)做任何想法?

回答

2

你解释,你不希望使用UIViewAnimation,但不说为什么。你想有一个自定义淡入淡出动画?给我们更多关于你的动机的细节。您的使用- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation的情况有什么不对?你可以通过不断UIStatusBarAnimationFade的第二个参数来获得一个淡入淡出效果。

你将面对想以不同的方式做到这一点的问题是,没有进入状态栏视图没有正式的办法。

文档中没有任何内容说明statusBarnavigationBar的一部分。因此,您的代码[[self navigationController] navigationBar]layer] ...不会产生您希望的效果。

相关问题