Objective c 自动显示MapKit注释

Objective c 自动显示MapKit注释,objective-c,mapkit,mkannotation,ios5,Objective C,Mapkit,Mkannotation,Ios5,我正在尝试获取自动显示详图索引的注释。 我已经设法做到了,但当这一切完成后,地图由于某种原因放大到北冰洋的中部。 有人知道为什么会这样吗? 这是我目前的代码: - (void)viewDidLoad { CLLocationCoordinate2D zoomLocation; zoomLocation.latitude = 59.*****; zoomLocation.longitude = 17.*****; MKCoordinateRegion viewRe

我正在尝试获取自动显示详图索引的注释。 我已经设法做到了,但当这一切完成后,地图由于某种原因放大到北冰洋的中部。 有人知道为什么会这样吗? 这是我目前的代码:

- (void)viewDidLoad
{

    CLLocationCoordinate2D zoomLocation;
    zoomLocation.latitude = 59.*****;
    zoomLocation.longitude = 17.*****;
    MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance(zoomLocation,  0.5 * METERS_PER_MILE, 0.5 * METERS_PER_MILE);
    MKCoordinateRegion adjustedRegion = [self.mapView regionThatFits:viewRegion];
    [self.mapView setRegion:adjustedRegion animated:YES];

    self.mapView.delegate = self;

    CLLocationCoordinate2D location = CLLocationCoordinate2DMake(59.*****, 17.*****);
    MapAnnotation *annotaion = [[MapAnnotation alloc] initWithCoordinates:location title:@"*****" subTitle:@"*****"];
    [self.mapView addAnnotation:annotation];
    [super viewDidLoad];
}

- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views
{
    MKAnnotationView *annotationView = [views objectAtIndex:0];
    id <MKAnnotation> mp = [annotationView annotation];
    [mv selectAnnotation:mp animated:YES];
}
-(void)viewDidLoad
{
C定位协调2 D动物定位;
zoomLocation.latitude=59.***;
zoomLocation.longitude=17.***;
MKCoordinateRegion viewRegion=MKCoordinateRegionMakeWithDistance(缩放位置,每英里0.5*米,每英里0.5*米);
MKCoordinateRegion adjustedRegion=[self.mapView RegionAtfits:viewRegion];
[self.mapView setRegion:adjustedRegion动画:是];
self.mapView.delegate=self;
CLLocationCoordinate2D位置=CLLocationCoordinate2DMake(59.****,17.****);
MapAnnotation*Annotation=[[MapAnnotation alloc]initWithCoordinates:位置标题:@“****”副标题:@“****”;
[self.mapView addAnnotation:annotation];
[超级视图下载];
}
-(void)地图视图:(MKMapView*)mv DIDADDAnnotationView:(NSArray*)视图
{
MKAnnotationView*annotationView=[views objectAtIndex:0];
id mp=[annotationView注释];
[mv selectAnnotation:mp动画:是];
}

如果启用了
showsUserLocation
,则似乎会发生这种情况

当地图视图添加用户位置注释视图时,尝试选择它(将
animated
设置为
YES
)会使地图缩放到北极(原因未知)

selectAnnotation
调用中将
animated
设置为
NO
,将避免缩放到北极,但最终可能会选择用户位置注释而不是注释

关闭
showsUserLocation
,或者在
didAddAnnotationViews
中,循环查看
视图
数组,直到找到一个不是用户位置的批注:

for (MKAnnotationView *av in views) {
    id <MKAnnotation> mp = [av annotation];
    if (![mp isKindOfClass:[MKUserLocation class]])
    {
        [mv selectAnnotation:mp animated:YES];
        break;
    }
}
for(视图中的MKAnnotationView*av){
id mp=[av注释];
如果(![mp IsKindof类:[MKUserLocation类]])
{
[mv selectAnnotation:mp动画:是];
打破
}
}

非常感谢!没想到用户位置点也是一个注解。