I have a mapView (_mapView) which in itself is a subView of my viewController , I would like to add an activityIndicator when I am fetching lots of pins, however I cannot get it to appear above the mapView, can anyone suggest why not
UIActivityIndicatorView *activityIndicator = nil;
activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] ;
CGRect frame = activityIndicator.frame;
frame.origin = CGPointMake(290, 12);
activityIndicator.frame = frame;
activityIndicator.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
activityIndicator.tag = 2;
[self._mapView addSubview:activityIndicator];
dataMarkers = [[kepnService new] getPlacesByBounds:neCoord.latitude :neCoord.longitude :swCoord.latitude :swCoord.longitude]; // call to webservice
.... other processing code
[activityIndicator removeFromSuperview];
For information my view stack looks like this
subviews (
"<MKMapView: 0x6d6f320; frame = (0 0; 320 460); clipsToBounds = YES; layer = <CALayer: 0x6d99520>>",
"<UIToolbar: 0x6d93f70; frame = (-1 0; 342 44); autoresize = W+TM; layer = <CALayer: 0x6d8bbf0>>",
"<UINavigationBar: 0x6d9a4f0; frame = (0 416; 320 44); autoresize = W+BM; layer = <CALayer: 0x6d9a5b0>>"
)
Seems like you are adding the activity indicator, blocking the main thread and then removing it.
What you should do is:
Add the activity indicator.
Detach a thread or block to the background to perform the processing code.
When done, remove the activity indicator.