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

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

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

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

【问题讨论】:

    标签: ios annotations mkmapview


    【解决方案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]”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多