如何让我的MKMapView注释显示出来?

时间:2012-08-30 06:43:36

标签: objective-c ios annotations mkmapview

我是新手,我正在把头撞在墙上,所以你能提供任何帮助都会受到赞赏。

我的应用程序正在下载一系列坐标和标题,我正在转向MKAnnotations。我已经很好地实现了MKAnnotation协议,因为它已停止抱怨,但这里是代码:

Annotator.h:

#import <Foundation/Foundation.h>
#import "MapKit/Mapkit.h"

@interface Annotator : NSObject <MKAnnotation>

+ (Annotator *) createAnnotator:(CLLocationCoordinate2D *)coordinate
                      withTitle:(NSString *)title
                    andSubtitle:(NSString *)subtitle;

@property (nonatomic, strong) NSString *myTitle;
@property (nonatomic, strong) NSString *mySubtitle;
@property (nonatomic) CLLocationCoordinate2D *coordinate;

@end

到目前为止很无聊。这是Annotator.m:

#import "Annotator.h"

@implementation Annotator

@synthesize myTitle = _myTitle;
@synthesize mySubtitle = _mySubtitle;
@synthesize coordinate = _coordinate;

+ (Annotator *)createAnnotator:(CLLocationCoordinate2D *)coordinate
                     withTitle:(NSString *)title
                   andSubtitle:(NSString *)subtitle
{
    Annotator *annotation = [[Annotator alloc] init];
    annotation.myTitle = title;
    annotation.mySubtitle = subtitle;
    annotation.coordinate = coordinate;
    return annotation;
}

- (NSString *)title
{
    return self.myTitle;
}

- (NSString *)subtitle
{
    return self.mySubtitle;
}

@end

现在,我已经在中央视图控制器中获得了大部分其他代码,因此只要HTTP请求返回数据,我就会遍历它,创建我的MKAnnotation对象,然后为每个代码执行此操作:

[self.territoryMap addAnnotation:locationPin];

...其中self.territoryMap是我拖到我的故事板中的MKMapView的出口,而locationPin是我用上面的Annotator实现创建的MKAnnotation对象。

我看过的一些解决方案都有MKMapViewDelegate方法,但在我看来它们不应该是必要的,因为我只是在寻找默认行为。我找到一个代表,我发现它允许我改变用户位置引脚的颜色,但这不是我担心的。

我还需要做些什么吗?我糊涂了!感谢您提供的任何帮助!

1 个答案:

答案 0 :(得分:0)

您必须设置MapViews委托。然后它应该工作正常。

或者看看这个:http://maybelost.com/2011/01/a-basic-mapview-and-annotation-tutorial/ 它看起来非常像你想要做的!