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

Posted

技术标签:

【中文标题】如何通过单击 iOS 中的特定注释来获取值?【英文标题】:How to get the values by clicking specific annotations in iOS? 【发布时间】:2013-11-21 05:55:06 【问题描述】:

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

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

latitude_value 和 longitude_value 是文本框 myAnnotation 是注解名称 标题和副标题包含纬度和经度值。 在此先感谢...!

【问题讨论】:

【参考方案1】:

你可以给 myAnnotation 自定义对象一个标签,如果它是一个自定义的给属性,比如

假设 myAnnotation 有以下属性,

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

之后,当您添加注释时,假设您有数组 aLocations 对象,所以给一个标签,如,

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]

【讨论】:

MKAnnotationView 包含它访问的注释。【参考方案2】:

您可以通过此代码设置纬度值和经度值:

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 点语法是唯一正确的方法。

【讨论】:

其实我的问题是,如果我选择任何注释,它的坐标应该显示在文本框中。 我应该在哪里添加这些编码。 @chandru 将这些代码放在 mapview 的委托方法中怎么样:- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view: 正在打印最后添加的注释坐标 @chandru 如果你把我的代码放在委托方法中,别忘了把“myAnnotation”改成“[view annotation]”

以上是关于如何通过单击 iOS 中的特定注释来获取值?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击 DataTable 同一行上的 Edit 按钮来获取 Id 值

在iOS中单击按钮时如何在UITableView中获取特定的JSON数据(目标c)?

如何在iPhone SDK中的MKMapView中单击注释引脚切换到另一个视图?

我想通过单击解析 Json 的集合视图单元格来获取特定数据

如何通过仅单击该行中的一个值来显示该行中的所有值

更新matplotlib中的特定注释