Я хочу добавить больше деталей в MKAnnotation, таких как название места, описание, дата, название места. Итак, нам понадобятся четыре строки. Но я обнаружил, что в MKAnnotation можно передать только 2 параметра: заголовок и подзаголовок. Как я могу добавить больше деталей на карту? Помогите, пожалуйста .. Заранее спасибо.
Как добавить больше деталей в MKAnnotation в iOS
comment
Я пробовал добавлять детали к субтитрам .. Но они отображались в одной строке .. Как я могу показать детали в нескольких строках
- person S.P.   schedule 26.02.2010
Ответы (1)
Взгляните на создание пользовательского MKAnnotationView
объекта ... это, по сути, UIView
, предназначенный для аннотаций карты. В этом объекте у вас может быть 4 пользовательских метки.
В своем классе MKMapViewDelegate
вы реализуете метод viewForAnnotation
:
- (CustomMapAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
CustomMapAnnotationView *annotationView = nil;
// determine the type of annotation, and produce the correct type of annotation view for it.
CustomMapAnnotation* myAnnotation = (CustomMapAnnotation *)annotation;
NSString* identifier = @"CustomMapAnnotation";
CustomMapAnnotationView *newAnnotationView = (CustomMapAnnotationView *)[self.mapView dequeueReusableAnnotationViewWithIdentifier:identifier];
if(nil == newAnnotationView) {
newAnnotationView = [[[CustomMapAnnotationView alloc] initWithAnnotation:myAnnotation reuseIdentifier:identifier] autorelease];
}
annotationView = newAnnotationView;
[annotationView setEnabled:YES];
[annotationView setCanShowCallout:YES];
return annotationView;
}
И это будет отображать ваше пользовательское представление везде, где у вас есть аннотация ... если вам нужно пошаговое руководство, посмотрите это видео.
надеюсь это поможет
ИЗМЕНИТЬ
На самом деле я только что нашел новый пример карт на apple dev site ... имеет весь исходный код, который вам нужно пройти. Они также используют пользовательский MKAnnotationView
под названием WeatherAnnotationView
person
Ryan Ferretti
schedule
26.02.2010
спасибо за твой ответ. Могу ли я добавить детали в пузырек по умолчанию в желаемом формате, например, с новой строкой? Я попытался добавить UIlabel в rightCalloutAccessoryView из MKPinAnnotationView. Но это не очень приятно. Заранее спасибо
- person S.P.; 27.02.2010
Я бы не стал делать это так, как вы это делаете ... У Apple есть аннотации настройки, поэтому их можно расширить с помощью класса MKAnnotationView. Попытка переопределить rightCalloutAccessoryView так, как вы это делаете, - не лучший способ сделать это ... вы боретесь с фреймворком, и это дает вам странные результаты. Если вам нужна персонализированная аннотация, лучше всего это сделать так, как я описал.
- person Ryan Ferretti; 27.02.2010
в учебнике изменяется только изображение аннотации ... это в значительной степени однострочный
- person MJB; 21.05.2012
Есть ли на это быстрый ответ?
- person ; 01.08.2016
@ S.P. см. эту ссылку stackoverflow.com/questions/5831382/
- person balkaran singh; 09.09.2016