...
@implementationRootViewController
...
@synthesize cLoadingView;
...
- (IBAction)doSomethingComplexAndTimeConsuming{
// this is how we start spinning[NSThreaddetachNewThreadSelector:@selector(spinBegin) toTarget:selfwithObject:nil];
...
// TODO: something very complex and time consuming// you can also add extra wait for the test (just uncomment line below)//[NSThread sleepForTimeInterval:3]
...
// stop waiting...[NSThreaddetachNewThreadSelector:@selector(spinEnd) toTarget:selfwithObject:nil];
...
// TODO: continue with our application
}
...
- (void)initSpinner{
cLoadingView = [[[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]autorelease];
// we put our spinning "thing" right in the center of the current view
CGPoint newCenter = (CGPoint) [self.view center];
cLoadingView.center = newCenter;
[self.view addSubview:cLoadingView];
}
...
- (void)spinBegin{
[cLoadingView startAnimating];
}
...
- (void)spinEnd{
[cLoadingView stopAnimating];
}
...
- (void)viewDidLoad{
[selfinitSpinner];
[superviewDidLoad];
}
...
@end
...