Читаем iOS. Приемы программирования полностью

#import «ViewController.h»

#import «MyAnnotation.h»

#import 


@interface ViewController  

@property (nonatomic, strong) MKMapView *myMapView;

@end

@implementation ViewControllerРеализация в файле. m будет такой:


— (MKAnnotationView *)mapView:(MKMapView *)mapView

viewForAnnotation:(id )annotation{


MKAnnotationView *result = nil;


if ([annotation isKindOfClass: [MyAnnotation class]] == NO){

return result;

}


if ([mapView isEqual: self.myMapView] == NO){

/* Мы собираемся обработать это событие только для того Map View,

который мы создали ранее. */

return result;

}


/* Сначала приводим тип той аннотации, для которой этот Map View

запустил данное сообщение делегата. */

MyAnnotation *senderAnnotation = (MyAnnotation *)annotation;


/* С помощью метода класса, определенного в нашем собственном

классе аннотаций, попытаемся сделать многоразовый идентификатор

для того маркера, который сейчас создаем. */

NSString *pinReusableIdentifier =

[MyAnnotation

reusableIdentifierforPinColor: senderAnnotation.pinColor];


/* Пользуясь идентификатором, полученным ранее, попытаемся

повторно применить маркер в отправляющем Map View. */

MKPinAnnotationView *annotationView = (MKPinAnnotationView *)

[mapView

dequeueReusableAnnotationViewWithIdentifier: pinReusableIdentifier];


if (annotationView == nil){

/* Если нам не удастся повторно использовать имеющийся маркер,

создадим новый. */

annotationView = [[MKPinAnnotationView alloc]

initWithAnnotation: senderAnnotation

reuseIdentifier: pinReusableIdentifier];


/* Убеждаемся, что видны выноски поверх каждого маркера в случае,

если мы присвоили каждому маркеру заголовок и/или подзаголовок. */

[annotationView setCanShowCallout: YES];

}


/* Теперь (независимо от того, использовали мы многоразовый маркер

или создали новый) убеждаемся, что цвет маркера совпадает с цветом

аннотации. */

annotationView.pinColor = senderAnnotation.pinColor;


result = annotationView;


return result;

}


— (void)viewDidLoad {

[super viewDidLoad];


/* Создаем карту такого же размера, как и наш вид. */

self.myMapView = [[MKMapView alloc]

initWithFrame: self.view.bounds];


self.myMapView.delegate = self;


/* Задаем для карты тип Standard. */

self.myMapView.mapType = MKMapTypeStandard;


self.myMapView.autoresizingMask =

UIViewAutoresizingFlexibleWidth |

UIViewAutoresizingFlexibleHeight;


/* Добавляем ее к нашему виду. */

[self.view addSubview: self.myMapView];


/* Это просто один образец местоположения. */

CLLocationCoordinate2D location;

location.latitude = 50.8219 16929 07181;

location.longitude = -0.13 81176 71012 87842;


Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже