хорошо, у меня нормально появляются мои аннотации, но я не могу понять, как заставить маленькое диалоговое окно появляться над ним.Когда я создаю аннотацию, я делаю это:
Annotation *annot = [[Annotation alloc] init];
annot.coordinate = touchMapCoordinate;
annot.title = @"Location";
annot.subtitle = @"The address";
[self.mapView addAnnotation:annot];
Опять же, это работает, находят, но не показывает маленькое диалоговое окно.
Я понимаю, что я как-то связан сделегат.Я скачал пример кода Apple MapCallouts и не мог понять, как они связались с делегатом по аннотациям.
вот мой класс аннотаций
Annotation.H
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
@interface Annotation : NSObject <MKAnnotation>{
CLLocationCoordinate2D coordinate;
NSString *title;
NSString *subtitle;
}
@property (nonatomic) CLLocationCoordinate2D coordinate;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *subtitle;
-(id)initWithCoordinate:(CLLocationCoordinate2D) c
title:(NSString *) t
subtitle:(NSString *) st;
-(void) moveAnnotation: (CLLocationCoordinate2D) newCoordinate;
-(NSString *)subtitle;
-(NSString *)title;
@end
Annotation.m
#import "Annotation.h"
@implementation Annotation
@synthesize coordinate = _coordinate;
@synthesize title = _title;
@synthesize subtitle = _subtitle;
-(id)initWithCoordinate:(CLLocationCoordinate2D)c title:(NSString *)t subtitle:(NSString *)st
{
coordinate = c;
self.title = t;
self.subtitle = st;
return self;
}
-(void)moveAnnotation:(CLLocationCoordinate2D)newCoordinate
{
coordinate = newCoordinate;
}
-(NSString *)subtitle {
return subtitle;
}
-(NSString *)title{
return title;
}
@end
Вот тот вариант, который я настроил:
-(MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id < MKAnnotation >)annotation
{
if ([annotation isKindOfClass:[Annotation class]])
{
static NSString *reuseId = @"customAnn";
MKAnnotationView *customAnnotationView = [aMapView dequeueReusableAnnotationViewWithIdentifier:reuseId];
if (customAnnotationView == nil)
{
customAnnotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseId];
UIImage *pinImage = [UIImage imageNamed:@"pin-green.png"];
[customAnnotationView setImage:pinImage];
customAnnotationView.canShowCallout = YES;
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
customAnnotationView.rightCalloutAccessoryView = rightButton;
}
customAnnotationView.annotation = annotation;
return customAnnotationView;
}
return nil;
}
Если вам нужна дополнительная информация от меня, дайте мне знать и заранее поблагодарить вас!