位置正常,但标题没有出现,最奇怪。
location.latitude = (double) 51.501468;
location.longitude = (double) -0.141596;
// Add the annotation to our map view
MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:@"ABC" andCoordinate:location];
[self.mapView addAnnotation:newAnnotation];
// [newAnnotation release];
MapViewAnnotation.h
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
@interface MapViewAnnotation : NSObject <MKAnnotation> {
NSString *title;
CLLocationCoordinate2D coordinate;
}
@property (nonatomic, copy) NSString *title;
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
- (id)initWithTitle:(NSString *)ttl andCoordinate:(CLLocationCoordinate2D)c2d;
@end
和MapViewAnnotation.m
#import "MapViewAnnotation.h"
@implementation MapViewAnnotation
@synthesize title, coordinate;
- (id)initWithTitle:(NSString *)ttl andCoordinate:(CLLocationCoordinate2D)c2d {
title = ttl;
coordinate = c2d;
return self;
}
@end
[newAnnotation release]被重新安排以保持ARC的快乐:-) 有任何想法吗?
答案 0 :(得分:1)
这就是诀窍:
[mapView selectAnnotation:newAnnotation animated:YES];
以前标题只会在您点击Pin时显示。
答案 1 :(得分:0)
答案 2 :(得分:0)
该代码看起来很好(除了init
方法的非标准实现)。
标题(标注)未显示的最可能原因是,在viewForAnnotation
委托方法中,您未将canShowCallout
设置为YES
(默认为{{1} }})。
在NO
委托方法中,在您创建viewForAnnotation
后,将MKAnnotationView
设置为canShowCallout
。
无关标题/标注未显示,YES
类中的init
方法应按如下方式实现:
MapViewAnnotation