Report abuse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
...

@implementation RootViewController
...
@synthesize cLoadingView;
...

- (IBAction)doSomethingComplexAndTimeConsuming {
	// this is how we start spinning
	[NSThread detachNewThreadSelector: @selector(spinBegin) toTarget:self withObject: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...
	[NSThread detachNewThreadSelector: @selector(spinEnd) toTarget:self withObject: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 {
	[self initSpinner];
	[super viewDidLoad];
}

...

@end

...