2016-04-05 2 views
0

я следующий код:Индикатор загрузки UIAlertView почти слишком далеко?

_loadingAlert = [[UIAlertView alloc] initWithTitle:ALERT_TITLE_LOADING 
              message:ALERT_MESSAGE_LOADING 
              delegate:nil 
           cancelButtonTitle:nil 
           otherButtonTitles:nil]; 

UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
[indicator startAnimating]; 

[_loadingAlert setValue:indicator forKey:@"accessoryView"]; 
[_loadingAlert show]; 

Результат:

enter image description here

Моя цель состоит в том, чтобы отобразить alertview с индикатором нагрузки внутри, но результат как приложенный скриншот. У кого-нибудь есть идея?

+0

Вы заметили, что 'UIAlertView' устарело какое-то время? Вместо этого вы должны использовать 'UIAlertController'. – rmaddy

+0

Да, я замечаю это, но мне все равно нужно поддерживать iOS 7. – Rendy

+0

Попробуйте пользовательский вид, который будет иметь вставку внизу, в представлении прогресса его нет. –

ответ

0

Попробуйте с этим кодом (как это было предложено @ A-Live), вы можете изменить значение отступа, чтобы добавить больше пространства в нижней части индикатора активности.

_loadingAlert = [[UIAlertView alloc] initWithTitle:ALERT_TITLE_LOADING 
              message:ALERT_MESSAGE_LOADING 
              delegate:nil 
           cancelButtonTitle:nil 
           otherButtonTitles:nil]; 

UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
indicator.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; 
indicator.translatesAutoresizingMaskIntoConstraints = YES; 
[indicator startAnimating]; 

CGFloat padding = 15; 
UIView *indicatorView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, indicator.frame.size.width, indicator.frame.size.width+padding)]; 
[indicatorView addSubview:indicator]; 

[_loadingAlert setValue:indicatorView forKey:@"accessoryView"]; 
[_loadingAlert show]; 
+0

Он работает как шарм! Благодаря! – Rendy

0

Я предлагаю вам попробовать cocoapod MBProgressHUD, поскольку он, похоже, делает именно то, что вы хотите, и будет поддерживать iOS 6+.

https://github.com/jdg/MBProgressHUD

enter image description here

+0

Я хочу похож на UIAlertView, мой клиент не любит макет MBProgressHUD. – Rendy

Смежные вопросы