Кто-нибудь знает, есть ли вообще кнопка для аннотации?
Я бы хотел, чтобы это место можно было выбрать - чтобы вы могли сказать ... выберите место и получите все события в этом месте, нажав на кнопку.
Это возможно?
w://
Кто-нибудь знает, есть ли вообще кнопка для аннотации?
Я бы хотел, чтобы это место можно было выбрать - чтобы вы могли сказать ... выберите место и получите все события в этом месте, нажав на кнопку.
Это возможно?
w://
Вот код, который я использовал для своей аннотации, он включает кнопку с правой стороны пузыря. Вы можете настроить IBAction, чтобы поместить новое представление в стек, чтобы отображать все, что вы хотите.
- (MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation:(id <MKAnnotation>)annotation
{
MKPinAnnotationView *pinAnnotation = nil;
if(annotation != mapView.userLocation)
{
static NSString *defaultPinID = @"myPin";
pinAnnotation = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];
if ( pinAnnotation == nil )
pinAnnotation = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:defaultPinID] autorelease];
pinAnnotation.canShowCallout = YES;
//instatiate a detail-disclosure button and set it to appear on right side of annotation
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
pinAnnotation.rightCalloutAccessoryView = infoButton;
}
return pinAnnotation;
}
defaultPinID
? Вам не нужно его выпускать. Выпуск pinAnnotation
в конце концов зря, потому что он никогда не вызывается.
- person testing; 05.10.2010
Я просто помог кому-то еще с этим в цели c, но я уверен, что концепция такая же и с моно. Вам необходимо создать собственный объект MKAnnotationView и переопределить метод GetViewForAnnotation (viewForAnnotation in obj-c) вашего класса MKMapViewDelegate ... ответьте на другой вопрос.
Когда вы создаете свой собственный объект MKAnnotationView, это в основном UIView, созданный для аннотаций карты ... вы можете просто добавить свою кнопку и другую информацию в представление, и она будет отображаться, когда пользователь нажимает аннотацию.
Вот примерный код метода делегата:
public override MKAnnotationView GetViewForAnnotation(
MKMapView mapView,NSObject annotation) {
var annotationId = "location";
var annotationView = mapView.DequeueReusableAnnotation(annotationId);
if (annotationView == null) {
// create new annotation
annotationView = new CustomAnnotationView(annotation, annotationId);
}
else {
annotationView.annotation = annotation;
}
annotation.CanShowCallout = true;
// setup other info for view
// ..........
return annotationView;
}
}