[英]How can I show alertview with activity indicator?
我想向alertview顯示消息:“正在加載數據”和旋轉活動指示器。 我怎樣才能做到這一點?
注意:此解決方案不適用於iOS 7及更高版本。
這是我的看法:
alertView = [[UIAlertView alloc] initWithTitle:@"Submitting Entry"
message:@"\n"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.center = CGPointMake(139.5, 75.5); // .5 so it doesn't blur
[alertView addSubview:spinner];
[spinner startAnimating];
[alertView show];
使用以下代碼解雇代碼:
[alertView dismissWithClickedButtonIndex:0 animated:YES];
這適用於iOS 7
在iOS 7及更高版本中,addSubView不適用於UIAlertView。 試試這個
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Loading data" message:nil delegate:nil cancelButtonTitle:nil otherButtonTitles: nil];
UIActivityIndicatorView *indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
[indicator startAnimating];
[alertView setValue:indicator forKey:@"accessoryView"];
[alertView show];
並解雇它
[alertView dismissWithClickedButtonIndex:0 animated:YES];
您可以添加標簽和activityindicator作為警報視圖的子視圖。 你必須做這樣的事情
myAlertView = [[UIAlertView alloc] initWithTitle:@"Loading" message:@"\n\n"
delegate:self
cancelButtonTitle:@""
otherButtonTitles:@"OK", nil];
UIActivityIndicatorView *loading = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
loading.frame=CGRectMake(150, 150, 16, 16);
[myAlertView addSubview:loading];
[myAlertView show];
..更好地在這種情況下使用UIActionSheet ...
您可以添加標簽和activityindicator作為警報視圖的子視圖。 你必須做這樣的事......
- (IBAction)showAlertWithActivity:(id)sender{
alerta = [[UIAlertView alloc] initWithTitle:@"Guardando datos..."
message:@"\n"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
spinner.center = CGPointMake(139.5, 75.5); // .5 so it doesn't blur
[alerta addSubview:spinner];
[spinner startAnimating];
[alerta show];
[self performSelector:@selector(close) withObject:self afterDelay:1];
}
-(void)close{
[alerta dismissWithClickedButtonIndex:0 animated:YES];
}
在你的.h文件中添加它UIAlertView *connectingAlert;
並在.m文件中添加這兩個函數
//show loading activity.
- (void)startSpinner:(NSString *)message {
// Purchasing Spinner.
if (!connectingAlert) {
connectingAlert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(message,@"")
message:nil
delegate:self
cancelButtonTitle:nil
otherButtonTitles:nil];
connectingAlert.tag = (NSUInteger)300;
[connectingAlert show];
UIActivityIndicatorView *connectingIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
connectingIndicator.frame = CGRectMake(139.0f-18.0f,50.0f,37.0f,37.0f);
[connectingAlert addSubview:connectingIndicator];
[connectingIndicator startAnimating];
}
}
//hide loading activity.
- (void)stopSpinner {
if (connectingAlert) {
[connectingAlert dismissWithClickedButtonIndex:0 animated:YES];
connectingAlert = nil;
}
// [self performSelector:@selector(showBadNews:) withObject:error afterDelay:0.1];
}
然后打電話
[self startSpinner:@"Your message........"];
[self stopSpinner];
在Swift 3中
let loadingAlertController = UIAlertController(title: "Loading", message: nil, preferredStyle: .alert)
let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: .gray)
activityIndicator.translatesAutoresizingMaskIntoConstraints = false
loadingAlertController.view.addSubview(activityIndicator)
let xConstraint = NSLayoutConstraint(item: activityIndicator, attribute: .centerX, relatedBy: .equal, toItem: loadingAlertController.view, attribute: .centerX, multiplier: 1, constant: 0)
let yConstraint = NSLayoutConstraint(item: activityIndicator, attribute: .centerY, relatedBy: .equal, toItem: loadingAlertController.view, attribute: .centerY, multiplier: 1.4, constant: 0)
NSLayoutConstraint.activate([ xConstraint, yConstraint])
activityIndicator.isUserInteractionEnabled = false
activityIndicator.startAnimating()
let height: NSLayoutConstraint = NSLayoutConstraint(item: loadingAlertController.view, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.notAnAttribute, multiplier: 1, constant: 80)
loadingAlertController.view.addConstraint(height);
self.present(loadingAlertController, animated: true, completion: nil)
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alarm" message:@"" delegate:nil cancelButtonTitle:nil otherButtonTitles:nil];
UIActivityIndicatorView *loading = [[UIActivityIndicatorView alloc]
initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
loading.frame=CGRectMake(125, 50, 36, 36);
[loading startAnimating];
[alert addSubview:loading];
[alert show];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.