Думал, что разбуду этот поток и дам вам решение, которое я нашел.
Насколько я знаю, заголовок / подзаголовок MKPlacemark являются свойствами только для чтения из-за присущего назначения.Однако с найденным решением вы можете просто передать свой MKPlacemark в MKPointAnnotation следующим образом:
CLPlacemark *topResult = [placemarks objectAtIndex:0];
// Create an MLPlacemark
MKPlacemark *placemark = [[MKPlacemark alloc] initWithPlacemark:topResult];
// Create an editable PointAnnotation, using placemark's coordinates, and set your own title/subtitle
MKPointAnnotation *point = [[MKPointAnnotation alloc] init];
point.coordinate = placemark.coordinate;
point.title = @"Sample Location";
point.subtitle = @"Sample Subtitle";
// Set your region using placemark (not point)
MKCoordinateRegion region = self.mapView.region;
region.center = placemark.region.center;
region.span.longitudeDelta /= 8.0;
region.span.latitudeDelta /= 8.0;
// Add point (not placemark) to the mapView
[self.mapView setRegion:region animated:YES];
[self.mapView addAnnotation:point];
// Select the PointAnnotation programatically
[self.mapView selectAnnotation:point animated:NO];
Обратите внимание, что окончательный [self.mapView selectAnnotation:point animated:NO];
- это обходной путь, позволяющий автоматически выдавать метку.Однако кажется, что часть animated:BOOL
работает только с NO
в iOS 5. Возможно, вы захотите применить обходной путь, если у вас возникнут проблемы с ручным отображением точечной аннотации, которую можно найти здесь: MKAnnotation не выбираетсяв iOS5
Я уверен, что вы уже нашли свое собственное решение к настоящему времени, но я надеюсь, что это, в некотором роде, информативно.