如何使用活动指示器显示alertview?
我想显示alertview消息:“加载数据”和旋转活动指示器。 我怎样才能做到这一点?
您可以添加标签和活动指示器作为您的警报视图的子视图。 你必须做这样的事情
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更好…
注意:此解决scheme不适用于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];
您可以添加标签和活动指示器作为您的警报视图的子视图。 你必须做这样的事情…
- (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];
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];
在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)
- 用AVCaptureSession在iOS上读取QRCodes – alignment问题?
- Xcode使成员中心上的无效分发configuration文件
- iOS,如何使用GMSCoordinateBounds显示地图的所有标记?
- CMPedometer queryPedometerDataFromDate返回错误103
- 戴夫·托马斯(Dave Thomas)的数据整理卡塔(Kata)的快速解决方案,第2部分
- UISearchBar – ReturnKeyType不适用于iOS 8
- transitionWithView和animateWithDuration的问题
- IBInspectable和浮点值
- 在TabBarViewController的Tabs之间传递数据