iPhone: Создайте MKAnnotation

Я могу создать MKAnnotation, или действительно ли это только для чтения? У меня есть координаты, но мне не легко вручную создать MKAnnotation с использованием setCoordinate.

Идеи?

15
задан Shujito 19 October 2016 в 08:40
поделиться

3 ответа

MKAnnotation - это протокол. Поэтому вам нужно написать свой собственный объект аннотации, который реализует этот протокол. Итак, ваш заголовок MyAnnotation выглядит так:

@interface MyAnnotation : NSObject<MKAnnotation> {
    CLLocationCoordinate2D coordinate;
}

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

// add an init method so you can set the coordinate property on startup
- (id) initWithCoordinate:(CLLocationCoordinate2D)coord;

и ваша реализация выглядит так (MyAnnotation.m):

- (id) initWithCoordinate:(CLLocationCoordinate2D)coord
{
    coordinate = coord;
    return self;
}

Итак, чтобы добавить вашу аннотацию на карту:

MyAnnotation * annotation = [[[MyAnnotation alloc] initWithCoordinate:coordinate] autorelease];
[self.mapView addAnnotation:annotation];

Если вы не хотите, чтобы у аннотации были заголовок и подзаголовок, вам нужно добавить свойства title и subtitle.

40
ответ дан 30 November 2019 в 23:49
поделиться

Проверьте яблочный проект MapCallouts. Все, что вам нужно, находится в этом файле: http://developer.apple.com/iphone/library/samplecode/MapCallouts/Introduction/Intro.html

9
ответ дан 30 November 2019 в 23:49
поделиться

В iPhone OS 4 есть новый класс MKPointAnnotation, который является конкретной реализацией протокола MKAnnotation.

32
ответ дан 30 November 2019 в 23:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: