Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«iOS. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ программирования». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 92

Автор Π’Π°Π½Π΄Π°Π΄ Нахавандипур

/* Π£Π±Π΅ΠΆΠ΄Π°Π΅ΠΌΡΡ, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄Π½Ρ‹ выноски ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π² случаС,

Ссли ΠΌΡ‹ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρƒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΈ/ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ. */

[annotationView setCanShowCallout: YES];

}


/* Π’Π΅ΠΏΠ΅Ρ€ΡŒ (нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, использовали ΠΌΡ‹ ΠΌΠ½ΠΎΠ³ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€

ΠΈΠ»ΠΈ создали Π½ΠΎΠ²Ρ‹ΠΉ) ΡƒΠ±Π΅ΠΆΠ΄Π°Π΅ΠΌΡΡ, Ρ‡Ρ‚ΠΎ Ρ†Π²Π΅Ρ‚ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° совпадаСт с Ρ†Π²Π΅Ρ‚ΠΎΠΌ

Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. */

annotationView.pinColor = senderAnnotation.pinColor;


result = annotationView;


return result;

}


ΠŸΡ€ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΌ использовании Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π° Π΅ΠΌΡƒ присваиваСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (строка NSString). ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΡ, ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ ΠΊΠ°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅, ΠΈ задавая ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ для ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ красныС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹, Π° ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ β€” синиС), слСдуСт ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, примСняя ΠΌΠ΅Ρ‚ΠΎΠ΄ экзСмпляра dequeueReusableAnnotationViewWithIdentifier:, относящийся ΠΊ классу MKMapView. Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅.

ΠœΡ‹ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ получСния ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π² собствСнном классС MyAnnotation. Π’ΠΎΡ‚. h-Ρ„Π°ΠΉΠ» класса MyAnnotation:


#import <Foundation/Foundation.h>

#import <MapKit/MapKit.h>


/* Π­Ρ‚ΠΎ стандартныС Ρ†Π²Π΅Ρ‚Π° ΠΌΠ΅Ρ‚ΠΎΠΊ, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² SDK. ΠœΡ‹ Π·Π°Π΄Π°Π΅ΠΌ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅

ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π² соотвСтствии с Π΅Π³ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹

ΠΏΠΎΠ·ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ снова ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ созданныС Ρ€Π°Π½Π΅Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ Π² связи

с Ρ‚Π΅ΠΌ ΠΆΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠΌ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΠ½ΠΈ создавались. */


extern NSString *const kReusablePinRed;

extern NSString *const kReusablePinGreen;

extern NSString *const kReusablePinPurple;

@interface MyAnnotation: NSObject <MKAnnotation>


/* unsafe_unretained, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎΡ‚ шаг ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ

ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ принятиС этого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ компилятору. weak ΠΈΠ»ΠΈ strong

Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это Π½Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. */

@property (nonatomic, unsafe_unretained, readonly)

CLLocationCoordinate2D coordinate;


@property (nonatomic, copy) NSString *title;

@property (nonatomic, copy) NSString *subtitle;


/* unsafe_unretained ΠΏΠΎ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΈ для свойства coordinate */

@property (nonatomic, unsafe_unretained) MKPinAnnotationColor pinColor;


β€” (instancetype)initWithCoordinates:(CLLocationCoordinate2D)paramCoordinates

title:(NSString*)paramTitle

subTitle:(NSString*)paramSubTitle;


+ (NSString *) reusableIdentifierforPinColor

:(MKPinAnnotationColor)paramColor;

@end


Аннотация Π½Π΅ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄. Аннотация β€” это мСсто, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅, Π° Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ β€” это Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ эта аннотация всплываСт Π½Π°Π΄ ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²ΠΈΠ΄). Класс MyAnnotation соотвСтствуСт Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, Π° Π½Π΅ Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌΡƒ Π²ΠΈΠ΄Ρƒ. Когда ΠΌΡ‹ создаСм Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ ΠΏΡƒΡ‚Π΅ΠΌ инстанцирования класса MyAnnotation, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΉ Ρ†Π²Π΅Ρ‚, задСйствовав ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π°ΠΌΠΈ ΠΆΠ΅ свойство pinColor. Когда картографичСский Π²ΠΈΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, картографичСский Π²ΠΈΠ΄ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π΅Π»Π΅Π³Π°Ρ‚Π° mapView: viewForAnnotation: ΠΈ запросит Ρƒ этого Π΄Π΅Π»Π΅Π³Π°Ρ‚Π° Π°Π½Π½ΠΎΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄. Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ forAnnotation Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° сообщаСтся аннотация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ. ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ ссылку Π½Π° Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ привСсти Ρ‚ΠΈΠΏ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΊ экзСмпляру MyAnnotation, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π΅ свойство pinColor ΠΈ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° этих Π΄Π°Π½Π½Ρ‹Ρ…, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр класса MKPinAnnotationView. Π£ этого экзСмпляра Π±ΡƒΠ΄Π΅Ρ‚ информация ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Ρ†Π²Π΅Ρ‚Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π²Π΅Ρ€Π½Π΅ΠΌ картографичСскому Π²ΠΈΠ΄Ρƒ.

Π’ΠΎΡ‚. m-Ρ„Π°ΠΉΠ» MyAnnotation:


#import Β«MyAnnotation.hΒ»


NSString *const kReusablePinRed = @"Red";

NSString *const kReusablePinGreen = @"Green";

NSString *const kReusablePinPurple = @"Purple";


@implementation MyAnnotation

+ (NSString *) reusableIdentifierforPinColor

:(MKPinAnnotationColor)paramColor{


NSString *result = nil;


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;


/* Π”обавляСм Π΅Π΅ ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Π²ΠΈΠ΄Ρƒ. */

[self.view addSubview: self.myMapView];


/* Π­Ρ‚ΠΎ просто ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† мСстополоТСния. */

CLLocationCoordinate2D location;

location.latitude = 50.8219 16929 07181;

location.longitude = -0.13 81176 71012 87842;


/* Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ мСстополоТСнии. */

MyAnnotation *annotation =

[[MyAnnotation alloc] initWithCoordinates: location

title:@"My Title"

subTitle:@"My Sub Title"];


annotation.pinColor = MKPinAnnotationColorPurple;


/* Π˜ Π½Π°ΠΊΠΎΠ½Π΅Ρ†, добавляСм Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ. */

[self.myMapView addAnnotation: annotation];


}


Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 9.3.


Рис. 9.3. ΠœΠ°Ρ€ΠΊΠ΅Ρ€ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π°, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ Π² картографичСском Π²ΠΈΠ΄Π΅

9.6. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π² картографичСском Π²ΠΈΠ΄Π΅

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ВмСсто стандартных ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ², ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² iOS SDK, трСбуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ Π² Ρ‚Π°ΠΊΠΎΠΌ качСствС наши собствСнныС изобраТСния.