我正在開發一個應用程序來顯示特定郵政編碼中的商店。我從當前位置開始。我正在爲當前位置獲得藍色脈動點。當我輸入郵編時,我可以在地圖視圖中顯示註釋。我有一個按鈕「當前位置」,可以再次返回到當前位置。然而,第二次我沒有得到藍點?我如何得到它,這是代碼:mapview藍點不再來第二次
- (void)showCurrentLocation
{
self.mapView.showsUserLocation = YES;
GPSAnnotation *annotation = [[GPSAnnotation alloc] initWithCoordinate:self.mapView.userLocation.coordinate];
annotation.title = @"Location";
[self.mapView addAnnotation:annotation];
[annotation release];
MKCoordinateRegion zoomIn;
zoomIn.center.latitude = self.mapView.userLocation.coordinate.latitude;
zoomIn.center.longitude=self.mapView.userLocation.coordinate.longitude;
zoomIn.span.latitudeDelta = .1f;
zoomIn.span.longitudeDelta =.1f;
self.mapView.showsUserLocation = YES;
[self.mapView setRegion:zoomIn animated:TRUE];
}
// annotation view
- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(GPSAnnotation *)annotation
{
if ([[annotation title] isEqualToString:@"Location"])
{
MKAnnotationView *annotationView=[[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:nil] autorelease];
annotationView = [self.mapView dequeueReusableAnnotationViewWithIdentifier:@"blueDot"];
annotationView.annotation = annotation;
return annotationView;
}
else if ([annotation isKindOfClass:[MKUserLocation class]])
{
return nil;
}
}
爲什麼將GPSAnnotation座標設置爲與用戶位置相同? viewForAnnotation方法必須給你編譯器警告「控制達到非void函數的結束」。至少在方法的末尾添加'return nil;'來解決這個問題。除此之外,還有其他一些問題。 – Anna
您好Anna Karenina, 感謝您的回覆。我試着添加「return nil」,即使那樣我也不會爲第二個tym獲得tat點。 – cancerian