1

場所は機能していますが、タイトルが表示されません。最も奇妙なことです。

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 リリース] は、ARC を満足させるために修正されました :-) 何かアイデアはありますか?

4

3 に答える 3

1

これはトリックをしました:

[mapView selectAnnotation:newAnnotation animated:YES];

以前は、ピンをクリックした場合にのみタイトルが表示されました。

于 2012-11-09T17:50:00.533 に答える
0

you call annotation delegates refer this link, mapkit-example-in-iphone

于 2012-11-08T12:00:28.893 に答える
0

そのコードは問題ないように見えます (メソッドの非標準の実装を除いてinit)。

タイトル (コールアウト) が表示されない最も可能性の高い理由は、viewForAnnotationデリゲート メソッドで に設定canShowCalloutしていないことですYES(デフォルトはNO)。

viewForAnnotationデリゲート メソッドでは、 を作成した後、MKAnnotationViewに設定canShowCalloutYESます。


タイトル/吹き出しが表示されないことに関係なく、クラスのメソッドinitは次のMapViewAnnotationように実装する必要があります。

- (id)initWithTitle:(NSString *)ttl andCoordinate:(CLLocationCoordinate2D)c2d {
    self = [super init];
    if (self) {
        title = ttl;
        coordinate = c2d;
    }
    return self;
}
于 2012-11-08T13:58:56.287 に答える