0

有没有办法加载第MapView一个然后用注释填充它?

我问的原因:当我单击首先调用我的 XML 来填充注释的地图时,会出现延迟,然后视图才会使用我的MapView.

我担心的是,如果 XML 增长,它会进一步延迟或超时。

4

1 回答 1

0

请参阅此代码:

#import "MapViewController.h"
#import "MapViewAnnotation.h"

@implementation MapViewController

@synthesize mapView;

// When the view loads
- (void)viewDidLoad
{

    [self performSelector:@selector(addAnnotation) withObject:@"" afterDelay:5.0];
}

//here i am delaying my annotation to 5 second so my map can first display

-(void)addAnnotation
{
    // Set some coordinates for our position (Buckingham Palace!)
    CLLocationCoordinate2D location;
    location.latitude = (double) 51.501468;
    location.longitude = (double) -0.141596;

    // Add the annotation to our map view
    MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:@"Buckingham Palace" andCoordinate:location];
    [self.mapView addAnnotation:newAnnotation];
    [newAnnotation release];
}

// When a map annotation point is added, zoom to it (1500 range)
- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
    MKAnnotationView *annotationView = [views objectAtIndex:0];
    id <MKAnnotation> mp = [annotationView annotation];
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance([mp coordinate], 1500, 1500);
    [mv setRegion:region animated:YES];
    [mv selectAnnotation:mp animated:YES];
}

// Received memory warning
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

// If the view unloads, release the map view
- (void)viewDidUnload {
    [super viewDidUnload];
    [mapView release];
    mapView = nil;
}

// Deallocations
- (void)dealloc {
    [mapView release];
    [super dealloc];
}

@end
于 2013-03-05T09:33:05.457 回答