我有多个引脚(2种引脚)的映射。我他们把计时器作为副标题(自从什么时候过去了多少时间)。问题是我不知道该怎么做。当然应该使用mapView将view放在viewController上。然后可能有一些观察者决定注释......但是在这个概念中,哪里可以删除观察者以及在哪里设置观察者的动作变化..?或者也许有更好的概念? 谢谢你的回复。
答案 0 :(得分:0)
我会制作自己的MKAnnotation Class。
@interface MyAnnotation : NSObject <MKAnnotation> {
CLLocationCoordinate2D _coordinate;
NSMutableString * title;
NSMutableString * subtitle;
...
UIImage * pinImage;
...
NSDate * startTime;
}
此类将具有NSDate * startTime
作为属性和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:
或touchesEnded:withEvent:
以发送更新。
我没有测试,但我很确定它会起作用。