部分转载自:http://blog.youkuaiyun.com/duxinfeng2010/article/details/8510894
MBProgressHUD这个特效,主要作用为应用显示一个过渡的作用,常用于打开一个联网页面加载过程,防止出现假死现象,如果网速慢则告诉用户已经在很努力很努力的加载中。
GitHub上下载地址:https://github.com/jdg/MBProgressHUD
源码中也自带了一个Demo,显示13中动画效果,可以根据需要选取其中特效加以使用,使用方法基本一样;使用的时候只加把MBProgressHUD.h和MBProgressHUD.m拖入工程中,在使用的文件中加上#import"MBProgressHUD.h"
if (HUD!=nil) {
[HUD release];
}
HUD = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:HUD];
HUD.delegate = self;
HUD.labelText = @"正在检查更新...";
HUD.detailsLabelText = @"请稍候";
HUD.square = YES;
[HUD showWhileExecuting:@selector(CheckVersion) onTarget:self withObject:nil animated:YES];
//////////////////
- (void)hudWasHidden {
// Remove HUD from screen when the HUD was hidded
[HUD removeFromSuperview];
[HUD release];
HUD=nil;
}
/////检查更新
-(void)CheckVersion
{
[NSThread detachNewThreadSelector:@selector(DoCheckVersion) toTarget:self withObject:nil];
}
-(void)DoCheckVersion
{
NSError *error = nil;
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:APP_URL]];
[request setTimeOutSeconds:HTTPTIMEOUT];
[request startSynchronous];
error = [request error];
if (!error) {
NSData * ndMain = [request responseData];
NSString* strData = [[NSString alloc] initWithData:ndMain encoding:NSUTF8StringEncoding];
debug_NSLog(@"strData==%@",strData);
if ([strData isEqualToString:@""]==YES) {
return ;
}
NSDictionary *resultDic = [[[SBJsonParser alloc]init] objectWithString:strData];
NSArray* infoArray = [resultDic objectForKey:@"results"];
[strData release];
if (infoArray.count>0) {
NSDictionary* releaseInfo =[infoArray objectAtIndex:0];
NSString* appStoreVersion = [releaseInfo objectForKey:@"version"];
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
NSString *currentVersion = [infoDic objectForKey:@"CFBundleShortVersionString"];
float currentVertionFloat=[currentVersion floatValue];
float appStoreVertionFloat=[appStoreVersion floatValue];
if (appStoreVertionFloat > currentVertionFloat)
{
trackViewURL = [[NSString alloc] initWithString:[releaseInfo objectForKey:@"trackViewUrl"]];
NSString* msg =[releaseInfo objectForKey:@"releaseNotes"];
[self hudWasHidden];
[self performSelectorOnMainThread:@selector(ShowUpgradeDialog:) withObject:msg waitUntilDone:NO];
}
else
{
[self hudWasHidden];
[self showAlert:@"当前软件为最新版本,无需升级!"];
}
}
else
{
}
}
else
{
[self hudWasHidden];
[ self showAlert:@"更新失败,网络连接出现问题。"];
}
}