I have created a loading icon for my application. While the application is loading the map and placing the markers I have a loading icon displaying on the screen rotating. With my current code the loading icon shows, but only rotates when the markers are all placed on the map and everything is finished loading. I have tried about everything, can anyone help?
I will attach code below, I do understand this is not the best way to do it and I plan to neaten it up once I find out what I am doing wrong getting it to rotate when the map is loading.
Thanks.
- (void)viewDidLoad
{
[super viewDidLoad];
loading=@"0";
rotateTimer = [NSTimer scheduledTimerWithTimeInterval:0.3
target:self
selector:@selector(rotateMove)
userInfo:nil
repeats:YES];
}
-(void)rotateMove
{
if([loading isEqual:@"1"])
{
[rotateTimer invalidate];
rotateTimer = nil;
}
if([loading isEqual:@"0"])
{
NSLog(@"move");
[UIView animateWithDuration:1.0f delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
[self.rotate setTransform:CGAffineTransformRotate(self.rotate.transform, M_PI_2)];
} completion:^(BOOL finished){
if (finished) {
}
}];
}
}
EDITED: ADDED MAP CODE BELOW
-(void)mapload
{
[self.mapView clear];
NSString *lat = [[NSString alloc] initWithFormat:@"%g", latitude];
NSString *lng = [[NSString alloc] initWithFormat:@"%g", longitude];
NSURL *blogURL =
NSLog(@"URL = %@", blogURL);
NSData *jsonData = [NSData dataWithContentsOfURL:blogURL];
if(jsonData == nil)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Connection Error" message:@"Please check your internet connection and try again." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
return;
}
else{
NSError *error = nil;
NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
NSArray *test = [dataDictionary objectForKey:@"test"];
self.bottombutton.hidden=FALSE;
self.time.hidden=FALSE;
self.mins.hidden=FALSE;
self.rotate.hidden=TRUE;
int tes = [[test[0] valueForKey:@"time"] intValue];
}
for (int i = 0; i < [test count]; i++) {
for(NSDictionary *coordinates in test){
double la=[coordinates[@"lat"] doubleValue];
double lo=[coordinates[@"long"] doubleValue];
CLLocation * loca=[[CLLocation alloc]initWithLatitude:la longitude:lo];
CLLocationCoordinate2D coordi=loca.coordinate;
GMSMarker *marker= [[GMSMarker alloc] init];
marker=[GMSMarker markerWithPosition:coordi];
marker.snippet = coordinates[@"name"];
marker.map = self.mapView;
marker.appearAnimation = kGMSMarkerAnimationPop;
UIImage * image = [UIImage imageNamed:@"mapiconlarge"];
CGSize sacleSize = CGSizeMake(45, 45);
UIGraphicsBeginImageContextWithOptions(sacleSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, sacleSize.width, sacleSize.height)];
UIImage * resizedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSLog(@"markeradded");
marker.icon = resizedImage;
NSLog(loading);
}
}
}
}