0

我有多个引脚(2 种引脚)的地图。我他们将计时器作为字幕(自某件事以来经过了多少时间)。问题是我不知道该怎么做。当然计时器应该放在带有 mapView 的 viewController 上。然后可能一些观察者决定使用注释......但是在这个概念中,在哪里删除观察者以及在哪里为观察者设置动作改变......?或者也许有更好的概念?感谢您的回复。

4

1 回答 1

0

我会制作自己的 MKAnnotation 类。

@interface MyAnnotation : NSObject <MKAnnotation> {
    CLLocationCoordinate2D _coordinate;
    NSMutableString * title;
    NSMutableString * subtitle;
    ...
    UIImage * pinImage;
    ...
    NSDate * startTime;
}

此类将具有NSDate * startTimeas 属性和 refreshTime 方法,它们比较当前时间 ( [NSDate date]) 并在字幕中显示经过的时间。

然后你只需要刷新你的地图注释

for(MyAnnotation * annotation in [mapView annotations]) {
    if([annotation isKindOfClass:[MyAnnotation class]]) // important cause the user centered blue point is part of your annotation list!
        [annotation refreshTime];
}

现在的问题是:你想什么时候刷新?

例如,您可以使用每 n 秒刷新一次的计时器,或者在 ViewDidAppear 上启动刷新......这取决于您想要做什么!

编辑 :

如果您想刷新注释选择,也许您可​​以创建自己的 MKAnnotationView 的 AnnotationView 子类。

然后在您的 AnnotationView 中,覆盖touchesBegan:withEvent:ortouchesEnded:withEvent:以发送更新。

我没有测试过,但我很确定它会起作用。

于 2012-05-20T10:17:41.757 回答