これを自分で修正することができました.4つのステップで行ったことは次のとおりです。
ステップ 1: mapview のデリゲートを ViewController に設定する必要があります。
MapViewController.h
@interface MapViewController : UIViewController <MKMapViewDelegate> {
IBOutlet MKMapView *mapView;
}
@property (nonatomic, nonatomic) IBOutlet MKMapView *mapView;
MapViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
[mapView setDelegate:self];
}
ステップ 2: メソッドを実装します。
MapViewController.m
-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
MKPinAnnotationView *MyPin=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"current"];
//MyPin.pinColor = MKPinAnnotationColorPurple;
UIButton *advertButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[advertButton addTarget:self action:@selector(button:) forControlEvents:UIControlEventTouchUpInside];
/*MyPin.rightCalloutAccessoryView = advertButton;
MyPin.draggable = YES;
MyPin.animatesDrop=TRUE;
MyPin.canShowCallout = YES;*/
MyPin.highlighted = NO;
MyPin.image = [UIImage imageNamed:@"myCustomPinImage"];
return MyPin;
}
Step3: 「Annotation」(または他の名前) という名前のクラスを作成します。
注釈.h
#import <Foundation/Foundation.h>
#import <MapKit/MKAnnotation.h>
@interface Annotation : NSObject <MKAnnotation> {
CLLocationCoordinate2D coordinate;
NSString *title;
NSString *subtitle;
}
@property(nonatomic, assign) CLLocationCoordinate2D coordinate;
@property(nonatomic, copy) NSString *title;
@property(nonatomic, copy) NSString *subtitle;
@end
注釈.m
#import "Annotation.h"
@implementation Annotation
@synthesize coordinate, title, subtitle;
@end
ステップ 4: 注釈を追加して、カスタム イメージを作成します。
MapViewController.m
MKCoordinateRegion Bridge = { {0.0, 0.0} , {0.0, 0.0} };
Bridge.center.latitude = [[[testArr objectAtIndex:updates] objectAtIndex:1] floatValue];
Bridge.center.longitude = [[[testArr objectAtIndex:updates] objectAtIndex:0] floatValue];
Bridge.span.longitudeDelta = 0.01f;
Bridge.span.latitudeDelta = 0.01f;
Annotation *ann = [[Annotation alloc] init];
ann.title = @"I'm a pin";
ann.subtitle = @"Your subtitle";
ann.coordinate = Bridge.center;
[mapView addAnnotation:ann];
これが役立つことを願っています!