[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;





Then to show it use something like:

[[ WPActivityIndicator sharedActivityIndicator ] show ]; 

And hide with:

[[ WPActivityIndicator sharedActivityIndicator ] hide ];

为了改善程序的用户友好性,当你的iPhone  程序需要执行稍稍花点时间的处理的时候,我想显示一个标准的iPhone  等待画面是最合适的。那这里咱们使用iPhone  SDK中提供标准的控件UIActivityIndicatorView  ,来简单的实现Mac中经典的旋转轮等待画面。

首先介绍一下UIActivityIndicatorView  ,UIActivityIndicatorView  其实是一个View,所以你可以作为一个子View加入到当前画面的里面。但是当你的程序画面比较多的时候需要每个View去添加UIActivityIndicatorView  就比较麻烦了不是。
所以懒人有懒方法,我个人给大家推荐一个简单的懒方法,就是把View添加到程序的唯一的Window中,然后在各个画面需要显示等待窗口的时候,统一调用AppDelegate中自定义的方法就可以了。

// 首先在程序开始的时候在加入window中加入UIActivityIndicatorView 
- (void)applicationDidFinishLaunching:(UIApplication *)application {
RootViewController *viewController = [[RootViewController alloc]
initWithNibName:@”RootViewController”
bundle:nil];
self.rootViewController = viewController;
[viewController release];
[_window addSubview:_rootViewController.view];
// 初始化activityView,计算出当前窗口的中间位置
UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc]
initWithFrame:CGRectMake(_window.bounds.size.width / 2 – 16.0f,
_window.bounds.size.height / 2 – 16.0f,
32.0f,
32.0f)];
activityView.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;
activityView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin
| UIViewAutoresizingFlexibleRightMargin
| UIViewAutoresizingFlexibleTopMargin
| UIViewAutoresizingFlexibleBottomMargin;
activityView.hidesWhenStopped = YES;
// INDICATOR_VIEW是我自己定义的一个整数,例:#define INDICATOR_VIEW 10000
activityView.tag = INDICATOR_VIEW;
// 添加到window
[_window addSubview:activityView];
[activityView release];
[_window makeKeyAndVisible];
}
然后再修改AppDelegate类中加入自定义的方法,用来显示和隐藏等待旋转轮。

- (void)showActivityView {
[(UIActivityIndicatorView *)[_window viewWithTag:INDICATOR_VIEW] startAnimating];
}

- (void)hideActivityView {
// stop之后自动隐藏
[(UIActivityIndicatorView *)[_window viewWithTag:INDICATOR_VIEW] stopAnimating];
}
接下来就是在各个画面中的使用了,大致如下

XXXAppDelegate *appDelegate = (XXXAppDelegate *)[[UIApplication sharedApplication] delegate];
[appDelegate showActivityView];
另外补充一点,当你在调用显示等待画面代码的后面,有一断比较重的代码 的时候,程序运行起来,并没有向你想的那样,马上显示等待画面,而是等那断比较重的 代码也运行完之后,等待画面再被显示,显然这不是你想要的结果。虽然有几种方法可以避免,比如你可以通过在viewWillAppear方法中分开等待画 面的显示,来避免但效果并不理想,会让你的程序感觉上很慢。另外你也可以启动一个Thread来运行也可以,不过好像更慢。有了下面这两个 viewController中自带的方法就很方便了,看名字就知道是什么功能了吧。

 

[self performSelectorInBackground:@selector(yourMethodName) withObject:nil];
[self performSelectorOnMainThread:@selector(yourMethodName) withObject:nil waitUntilDone:NO];