等待框:
UIAlertView *showWaitingAlert(){
UIAlertView *waittingAlert = [[UIAlertView alloc] initWithTitle: @"正在获取数据"
message: @"请稍候..."
delegate: nil
cancelButtonTitle: nil
otherButtonTitles: nil];
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
activityView.frame = CGRectMake(139.0f-18.0f, 80.0f, 37.0f, 37.0f);
[waittingAlert addSubview:activityView];
[activityView startAnimating];
[waittingAlert show];
return waittingAlert;
}
void dismissWaitingAlert (UIAlertView* waittingAlert){
if (waittingAlert != nil) {
[waittingAlert dismissWithClickedButtonIndex:0 animated:YES];
[waittingAlert release];
waittingAlert =nil;
}
}
首先,显示一个无按钮的alertView,然后添加一个UIActivityIndicatorView作为alertView的子视图
最后,通过alertView的dismissWithClickedButtonIndex:animated:取消显示alertView。
代码和显示效果都非常优雅
调用方法:
-(IBAction)ButtonOnPress:(id)sender{
G_waitalert = showWaitingAlert();
//定时5秒自动关闭
[self performSelector:@selector(timerCallback) withObject:nil afterDelay:5];
}
其中callback函数为实例函数,不然selector没法用类函数(我不会,呵呵):
-(void)timerCallback{
dismissWaittingAlert(G_waitalert);
}
或者直接在callback里调用全局变量G_waitalert进行操作!