我在尝试使用不同坐标更新注释位置时遇到问题。有没有办法我可以更改de location属性而无需创建另一个注释?我试过下面的代码没有运气。我试图得到的注释不是更新它的位置。请帮忙!
CLLocationCoordinate2D location;
location.latitude = -36.560976;
location.longitude = -59.455807;
for (id annotation in self.mapView.annotations) {
if ([annotation isKindOfClass:[MyAnnotation class]])
{
[annotation setCoords:location]; //setCoords is defined in MyAnnotation class
}
}
谢谢大家!
答案 0 :(得分:3)
扩展MKPointAnnotation,它能够自动将地图上的注释视图更新为新坐标。
@interface MyAnnotation : MKPointAnnotation
答案 1 :(得分:-1)
您需要删除注释并在更改其坐标后再次添加注释,或将其替换为新注释。 MapKit并不认为注释可能是可变的。
答案 2 :(得分:-1)
您不必删除注释,然后重新添加注释以更新注释在地图上的位置。
您添加了注释的MapView应该为您处理位置更改。如果没有看到更多代码,我认为您遇到的问题可能是您的注释使用location
变量而不是coordinate
变量。
MKAnnotation协议要求您在注记类中实现CLLocationCoordinate2D coordinate
实例变量。它还建议您合成坐标属性。
尝试将CLLocationCoordinate2D coordinate
实例变量及其匹配属性@property (assign, nonatomic) CLLocationCoordinate2D coordinate
添加到注释类.h文件中。然后在注释类.m文件中使用@synthesize
。
如果这不能解决您的问题,您可能需要在问题中添加更多详细信息。
答案 3 :(得分:-1)