MapKit 的注释问题

Posted

技术标签:

【中文标题】MapKit 的注释问题【英文标题】:MapKit problems with annotations 【发布时间】:2010-09-08 15:54:47 【问题描述】:

好的,我的 MapKit 注释有一些问题。

首先,我想要每个注释的标注。我根本不知道该怎么做! :( 我有两个 NSStrings(地点名称和简短描述)。然后我需要能够记录对标注的点击 - 这样我就可以启动披露视图。

其次,我想更改用户位置注释的视图。

目前所有注释都通过此代码设置为“默认”引脚注释视图:

- (MKAnnotationView *) mapView:(MKMapView *)myMapView viewForAnnotation:(id <MKAnnotation>) annotation
    MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];
    annView.animatesDrop=TRUE;
    return annView;

我希望将用户位置注释设置为默认的蓝色脉动圆圈事物,但至少我希望能够将pinColor 属性更改为不同的颜色,以便用户可以区分自己的位置以及他们的搜索结果。

我希望有人可以帮助我。

谢谢。

【问题讨论】:

【参考方案1】:

我认为您应该考虑使用 showsUserLocation 来描述您的用户位置 - 它是平台的标准 UI,可帮助人们获得跨应用的一致体验。当然,您可以为用户位置提供一些自定义注释,但为什么要重新发明人们习惯于在地图应用和许多第三方应用上看到的内容呢?

您应该花时间查看 Apple 的 MapKit 代码示例,您需要做的所有事情都在那里。这对你来说是一个很好的起点:

http://developer.apple.com/iphone/prerelease/library/samplecode/MapCallouts/Introduction/Intro.html

【讨论】:

am 使用的是 showUserLocation 哈哈,但它会将漂亮的蓝色脉冲变为针脚……:/ 我不知道为什么。 您正在为当前位置使用重用标识符 对...我该如何阻止它?即:如何区分当前位置注释和其他注释? reuseIdentifier:@"SomeOtherStringThatIsNotTheSameAsTheIdentifierBeingUsedByCurrentLocation" hmm...问题是我不知道当前位置正在使用哪个注释。没关系 - 我现在找到了。像if(annotation == mapView.userlocation) return nil; 或类似的东西。 :) 感谢您的帮助。【参考方案2】:

嗯...问题是我不知道当前位置使用的是哪个注释。没关系 - 我现在找到了。类似 if(annotation == mapView.userlocation) return nil; 或类似的。 :) 感谢您的帮助

【讨论】:

以上是关于MapKit 的注释问题的主要内容,如果未能解决你的问题,请参考以下文章

自定义注释苹果mapkit

Mapkit,如何检测注释已加载

可拖动的 MapKit 注释

mapKit:在用户选择注释标记后执行 segue

iPhone 3.0 MapKit - 同一位置的多个注释

放大和缩小时的Mapkit注释类型?