如何通过点击iOS中的特定注释来获取值?

我有我的应用程序中的地图视图和2个文本框。 两个文本框都显示经纬度。
我在地图视图中绘制或映射了几个注释,当单击每个注释时,标注将显示相应的经度和纬度值。
我只想在我的文本框中显示这些纬度和经度值。 我试了下面的代码,

latitude_value.text=myAnnotation.title; longitude_value.text=myAnnotation.subtitle; 

latitude_value和longitude_value是文本框
myAnnotation是注释名称
标题和副标题包含经度和纬度值。
提前致谢…!

你可以用下面的代码设置latitude_value和longitude_value:

 float latitude = [myAnnotation coordinate].latitude; float longitude = [myAnnotation coordinate].longitude; latitude_value.text=[NSString stringWithFormat:@"%f",latitude]; longitude_value.text=[NSString stringWithFormat:@"%f",longitude]; 

因为CLLocationCoordinate2D是一个结构体,所以它没有方法或getter的概念。 访问结构成员的C点语法是唯一正确的方法。

你可以为myAnnotation自定义对象赋予一个标签,如果这是一个自定义的给定属性

假设myAnnotation有下面的属性,

 @property (nonatomic, copy) NSString *title; @property (nonatomic, copy) NSString *subTitle; @property (readwrite) int tag; // Tag to identify annotation 

在此之后,当你添加注释,假设你有数组对象的位置,所以给一个标签,

 for(int i=0; i< [aLocations count]; i++) { // Create MyAnnotation object and initialize it, suppose created object is myAnnotation, now set it's tag myAnnotation.tag=i; } 

之后,你可以访问标签值,

 -(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view { MyAnnotation *temp = (MyAnnotation*) view.annotation; NSLog(@"%d",temp.tag); // and now use [aLocations objectAtIndex:temp.tag] }