首页 > 代码库 > iOS UIAlertView中UIActivityindicatorView风火轮提示加载等待
iOS UIAlertView中UIActivityindicatorView风火轮提示加载等待
参考:http://stackoverflow.com/questions/18729220/uialertview-addsubview-in-ios7
1、SignInViewController.h
#import <UIKit/UIKit.h> @interface SignInViewController : UIViewController<UIAlertViewDelegate>{ UIAlertView *remoteAlertView; } @end
2、SignInViewController.m
#import "SignInViewController.h" @interface SignIniewController () @end @implementation SignInViewController -(void)dealloc{ if (remoteAlertView) { [remoteAlertView release]; } [super dealloc]; } // 方法内: // 远程webservice方法 RemoteLogic *remoteLogic = [[RemoteLogic alloc] init]; // 启动动画 [self remoteAnimation:@"正在获取服务器时间, 请稍候..."]; // 异步加载数据 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 获取webservice数据 delegate.serverTime = remoteLogic.getServerTime; dispatch_async(dispatch_get_main_queue(), ^{ // 关闭动画 [remoteAlertView dismissWithClickedButtonIndex:0 animated:YES]; // 获取webservice数据后操作 do something }); }); #pragma mark - Animation -(void)remoteAnimation:(NSString *)message{ if (remoteAlertView) { [remoteAlertView release]; } remoteAlertView = [[UIAlertView alloc] initWithTitle:@"提示" message:message delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil ]; UIActivityIndicatorView *aiView = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(125.0, 80.0, 30.0, 30.0)]; aiView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhiteLarge; //check if os version is 7 or above. ios7.0及以上UIAlertView弃用了addSubview方法 if ([[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending) { [remoteAlertView setValue:aiView forKey:@"accessoryView"]; }else{ [remoteAlertView addSubview:aiView]; } [remoteAlertView show]; [aiView startAnimating]; [aiView release]; }
3、效果ios5.1,ios7.1.2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。