Добавление UIActivityindicatorView в UIAlertView
Я хочу создать UIAlertView, который скажет, что "... in progress". Он также покажет, что UIActivityindicatorView на нем. Не могли бы вы сообщить мне, как я могу это сделать?
Спасибо.
Ответы
Ответ 1
Это довольно просто. Просто создайте UIActivityIndicatorView и добавьте его в качестве подсмотра в UIAlertView.
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@" " message:@" " delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
UIActivityIndicatorView *progress= [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125, 50, 30, 30)];
progress.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge;
[alert addSubview:progress];
[progress startAnimating];
[alert show];
Ответ 2
В моем случае я обнаружил, что использование hardcoded frame originins это плохо. И если мое сообщение имеет больше одной строки, индикатор показывает верхнюю часть моего сообщения.
Итак, я создаю функцию с индикатором компоновки, если размер UIAlertView
+(UIAlertView*) progressAlertWithTitle:(NSString*) title andMessage:(NSString*) message andDelegate:(id)delegate{
UIAlertView *progressAlert = [[UIAlertView alloc] init];
[progressAlert setTitle:title];
[progressAlert setMessage:message];
[progressAlert setDelegate:delegate];
UIActivityIndicatorView *progress=nil;
progress= [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
[progressAlert addSubview:progress];
[progress startAnimating];
[progressAlert show];
progress.frame=CGRectMake(progressAlert.frame.size.width/2-progress.frame.size.width, progressAlert.frame.size.height-progress.frame.size.height*2, progress.frame.size.width, progress.frame.size.height);
return progressAlert;
}
В этом случае индикатор всегда по центру
Однострочное сообщение:
![enter image description here]()
Более одно сообщение:
![enter image description here]()
Ответ 3
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:@"" delegate:self cancelButtonTitle:nil otherButtonTitles:nil];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
spinner.center = CGRectMake(xcords, ycords, width, height);
[alert addSubview:spinner];
[spinner startanimating];
[alert show];
Этот spinner будет скрыт при отключении AlertView.
[alert dismissWithClickedButtonIndex:0 animated:YES];