正如标题所说的方法
- (MKAnnotationView *)mapView:(MKMapView *)mapView1 viewForAnnotation:(id <MKAnnotation>)annotation {
调用,mapView1和注释都是nil
我在viewDidAppear方法中以通常的方式添加一个注释:
[mapView addAnnotation:_a];
尝试了两个注释实现 - 自定义和标准。以下是标准注释用法:
MKPointAnnotation *_aa=[[MKPointAnnotation alloc]init];
CLLocationCoordinate2D coordinates;
coordinates.latitude=39.281520;
coordinates.longitude= -76.580806;
_aa.coordinate= coordinates;
_aa.title=@"annotation 2";
[mapView addAnnotation:_aa];
答案 0 :(得分:0)
MapAnnotation.h
#import <Foundation/Foundation.h>
#import <MapKit/MKAnnotation.h>
@interface MapAnnotation : NSObject <MKAnnotation>
@property(nonatomic, assign) CLLocationCoordinate2D coordinate;
@property(nonatomic, copy) NSString *title;
@property(nonatomic, copy) NSString *subtitle;
-(id)initWithCoordinate:(CLLocationCoordinate2D)Region withtitle:(NSString *)Title andSubTitle:(NSString *)SubTitle ;
MapAnnotation.m
@implementation EventAtPlacesAnnotation
@synthesize title = _title, subtitle = _subtitle,coordinate = _coordinate;
-(id)initWithCoordinate:(CLLocationCoordinate2D)Region withtitle:(NSString *)Title andSubTitle:(NSString *)SubTitle
{
self = [super init];
if(self){
_title = Title;
_subtitle = SubTitle;
_coordinate = Region;
}
return self;
}
从使用地图视图的类中分配值
CLLocationCoordinate2D newCoordinate = CLLocationCoordinate2DMake(40.56, 90.83);
MapAnnotation *firstannotation = [[MapAnnotation alloc]initWithCoordinate:newCoordinate withtitle:@"Place 1" andSubTitle:@"Near To empire state"];
[myMapview addAnnotation:firstannotation];
答案 1 :(得分:0)
事实证明,在UI构建器中拖动时,某些“魔法”被破坏了。重新构建了屏幕和控制器,现在一切都按照宣传的方式工作。