При выполнении асинхронного HTTP-запроса я скрываю строку состояния iPhone и анимирую в моем собственном пользовательском UIViewController, чтобы показать статус загрузки. Таким образом, вместо того, чтобы видеть мощность сигнала, носитель, время и время автономной работы, пользователь получает сообщения, основанные на ходе выполнения HTTP-запроса. Моя строка состояния имеет высоту ровно 20 пикселей и хорошо вписывается в то место, где раньше была строка состояния. Когда активность HTTP завершена, пользовательское представление анимируется, а строка состояния iPhone возвращается обратно.
Я хотел бы просто не скрывать полностью строку состояния 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 animated: YES] вы не можете увидеть мое пользовательское представление. Как я могу сделать так, чтобы мой пользовательский вид просто отображался поверх строки состояния, чтобы мне не приходилось его скрывать?
Спасибо!