我有多个引脚(2 种引脚)的地图。我他们将计时器作为字幕(自某件事以来经过了多少时间)。问题是我不知道该怎么做。当然计时器应该放在带有 mapView 的 viewController 上。然后可能一些观察者决定使用注释......但是在这个概念中,在哪里删除观察者以及在哪里为观察者设置动作改变......?或者也许有更好的概念?感谢您的回复。
问问题
95 次
1 回答
0
我会制作自己的 MKAnnotation 类。
@interface MyAnnotation : NSObject <MKAnnotation> {
CLLocationCoordinate2D _coordinate;
NSMutableString * title;
NSMutableString * subtitle;
...
UIImage * pinImage;
...
NSDate * startTime;
}
此类将具有NSDate * startTime
as 属性和 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 回答