Чтение онлайн

на главную - закладки

Жанры

iOS. Приемы программирования

Нахавандипур Вандад

Шрифт:

switch (paramColor){

case MKPinAnnotationColorRed:{

result = REUSABLE_PIN_RED;

break;

}

case MKPinAnnotationColorGreen:{

result = REUSABLE_PIN_GREEN;

break;

}

case MKPinAnnotationColorPurple:{

result = REUSABLE_PIN_PURPLE;

break;

}

}

return result;

}

— (instancetype)initWithCoordinates:(CLLocationCoordinate2D)paramCoordinates

title:(NSString*)paramTitle

subTitle:(NSString*)paramSubTitle{

self = [super init];

if (self!= nil){

_coordinate = paramCoordinates;

_title = paramTitle;

_subtitle = paramSubTitle;

_pinColor = MKPinAnnotationColorGreen;

}

return self;

}

@end

Выполнив реализацию класса MyAnnotation, его нужно задействовать в приложении (в данном примере мы воспользуемся контроллером вида). Вот верхняя часть файла реализации контроллера вида:

#import «ViewController.h»

#import «MyAnnotation.h»

#import <MapKit/MapKit.h>

@interface ViewController <MKMapViewDelegate>

@property (nonatomic, strong) MKMapView *myMapView;

@end

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

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

viewForAnnotation:(id <MKAnnotation>)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;

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

Поделиться:
Популярные книги

Кодекс Крови. Книга ХVIII

Борзых М.
18. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Крови. Книга ХVIII

Герой

Мазин Александр Владимирович
4. Варяг
Фантастика:
альтернативная история
9.10
рейтинг книги
Герой

Изгой Проклятого Клана

Пламенев Владимир
1. Изгой
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Изгой Проклятого Клана

Дерзкие побеги

Нестерова Дарья Владимировна
Документальная литература:
прочая документальная литература
5.00
рейтинг книги
Дерзкие побеги

Развод в 45. От любви до ненависти

Гофман Крис
6. Развод
Любовные романы:
остросюжетные любовные романы
5.40
рейтинг книги
Развод в 45. От любви до ненависти

Кодекс Охотника. Книга XXXV

Винокуров Юрий
35. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXV

Товарищ "Чума" 3

lanpirot
3. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 3

Газлайтер. Том 31

Володин Григорий Григорьевич
31. История Телепата
Фантастика:
боевая фантастика
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Газлайтер. Том 31

Моров. Том 3

Кощеев Владимир
2. Моров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Моров. Том 3

Бастард Императора. Том 14

Орлов Андрей Юрьевич
14. Бастард Императора
Фантастика:
городское фэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Бастард Императора. Том 14

Ваше Сиятельство

Моури Эрли
1. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ваше Сиятельство

Неучтенный элемент. Том 7

NikL
7. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 7

Попаданец на рыбалке. Книги 1-7

Скворцов Владимир Николаевич
Попаданец на рыбалке
Фантастика:
фэнтези
попаданцы
6.88
рейтинг книги
Попаданец на рыбалке. Книги 1-7

Лекарь Империи 4

Карелин Сергей Витальевич
4. Лекарь Империи
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Лекарь Империи 4