Вход/Регистрация
iOS. Приемы программирования
вернуться

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

Шрифт:

6. Инстанцируйте класс MyAnnotation и добавьте его к вашей карте с помощью метода addAnnotation:, относящегося к классу MKMapView.

Обсуждение

Как было рассказано в подразделе «Решение» данного раздела, нам следует создать объект, соответствующий протоколу MKAnnotation, а позже инстанцировать этот объект и передать ему карту для отображения. h-файл этого объекта будет записываться так:

#import <Foundation/Foundation.h>

#import <MapKit/MapKit.h>

@interface MyAnnotation: NSObject <MKAnnotation>

@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;

@property (nonatomic, copy, readonly) NSString *title;

@property (nonatomic, copy, readonly) NSString *subtitle;

— (instancetype)initWithCoordinates:(CLLocationCoordinate2D)paramCoordinates

title:(NSString *)paramTitle

subTitle:(NSString *)paramSubTitle;

@end

В.m-файле класса MyAnnotation мы создаем класс, отвечающий за отображение геолокационной информации, и делаем это следующим образом:

#import «MyAnnotation.h»

@implementation MyAnnotation

— (instancetype)initWithCoordinates:(CLLocationCoordinate2D)paramCoordinates

title:(NSString *)paramTitle

subTitle:(NSString *)paramSubTitle{

self = [super init];

if (self!= nil){

coordinate = paramCoordinates;

title = paramTitle;

subtitle = paramSubTitle;

}

return(self);

}

@end

Позже мы инстанцируем этот класс и добавим его к нашей карте, например к. m-файлу того контроллера вида, который создает и отображает картографический вид:

#import «ViewController.h»

#import «MyAnnotation.h»

#import <MapKit/MapKit.h>

@interface ViewController <MKMapViewDelegate>

@property (nonatomic, strong) MKMapView *myMapView;

@end

@implementation ViewController

— (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 =

CLLocationCoordinate2DMake(50.8219 16929 07181, -0.13 81176 71012 87842);

/* Создаем аннотацию, используя информацию о местоположении. */

MyAnnotation *annotation =

[[MyAnnotation alloc] initWithCoordinates: location

title:@"My Title"

subTitle:@"My Sub Title"];

/* И наконец, добавляем аннотацию на карту. */

[self.myMapView addAnnotation: annotation];

@end

На рис. 9.2 показан вывод данной программы в симуляторе iPhone.

Рис. 9.2. Интегрированный в систему стандартный маркер, отображенный на карте

  • Читать дальше
  • 1
  • ...
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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