2011-12-27 72 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] ...不會產生您希望的效果。

相關問題