При выполнении асинхронного 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]
Вы не можете видеть мой пользовательский вид. Как сделать так, чтобы мой пользовательский вид просто отображался в верхней части строки состояния, чтобы мне не пришлось его скрывать?
Спасибо!