當做異步HTTP請求,我隱藏iPhone狀態欄和動畫在我自己的自定義UIViewController顯示上傳狀態。因此,用戶不會看到信號強度,運營商,時間和電池壽命,而是會根據HTTP請求的進度獲取消息。我的狀態欄正好是20px,並且很適合狀態欄以前的位置。當HTTP活動完成時,自定義視圖動畫和iPhone狀態欄再次進入。隱藏iPhone狀態欄拉我的tableViews了20px
我想避免完全隱藏iPhone狀態欄,而是將狀態欄的自定義視圖置於頂部。目前,如果我調用我的自定義視圖動畫並將iPhone狀態欄設置爲可見,那麼我的自定義視圖就在它後面。
這是我的代碼:
-(void) animateStatusBarIn {
CGRect statusFrame = CGRectMake(0.0f, -20.0f, 320.0f, 20.0f);
UploadStatusBar *statusView = [[UploadStatusBar alloc] initWithNibName:@"UploadStatusBar" bundle:nil];
self.status = statusView;
[statusView release];
status.view.frame = statusFrame;
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
[window addSubview:status.view];
[UIView beginAnimations:@"slideDown" context:nil];
[UIView setAnimationDuration:0.3];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationFinished:)];
status.view.frame = CGRectMake(0.0f, 0.0f, 320.0f, 20.0f);
[UIView commitAnimations];
}
-(void) animateStatusBarOut {
[UIView beginAnimations:@"slideUp" context:nil];
[UIView setAnimationDuration:0.3];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(animationFinished:)];
status.view.frame = CGRectMake(0.0f, -20.0f, 320.0f, 20.0f);
[UIView commitAnimations];
}
-(void)animationFinished:(NSString *)name {
if ([name isEqualToString:@"slideDown"]) {
}
if ([name isEqualToString:@"slideUp"]) {
[[UIApplication sharedApplication]setStatusBarHidden:NO animated:YES];
[status.view removeFromSuperview];
}
}
沒有[[UIApplication的sharedApplication] setStatusBarHidden:YES動畫:是] 你看不到我的自定義視圖。我怎樣才能讓自定義視圖出現在狀態欄的頂部,這樣我就不必隱藏它了?
謝謝!
謝謝兄弟!效果很好 – Justin 2010-05-30 04:17:37