MKAnnotation 自定义标注按钮一般操作 - 如何知道它来自哪个注释? (iPhone)
我正在开发一个 MapKit 应用程序,它使用一大堆 MKAnnotations 来标记位置。我想要的是将按钮放入标注中,用户可以按下这些按钮以在所选位置上执行操作。到目前为止,我已经看到了一些示例,您可以在每个标注上放置特定的处理程序,例如苹果示例代码“MapCallouts”。
我想对所有通用注释标注使用一个处理程序,理想情况下我会传入活动标注的 MKAnnotation。
我在谷歌上搜索了又搜索没有结果,有人可以给我一个指针或链接吗?
谢谢!
I'm developing a MapKit app which uses a whole bunch of MKAnnotations to mark locations. What I want is to put buttons into the callouts which the user can press to perform an action on the selected location. So far I have seen examples where you can put a specific handler onto each callout, like the apple sample code "MapCallouts".
I want to use one handler for all of the annotation callouts which is general purpose, where I would ideally pass in the MKAnnotation for the active callout.
I've searched and searched in Google to no avail, can anybody give me a pointer or a link?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我更喜欢使用
calloutAccessoryControlTapped
委托,而不是使用addTarget
添加您自己的处理程序方法,然后使用selectedAnnotations
属性来确定点击了哪个注释。方法。在该委托方法中,使用
view.annotation
访问点击的注释,如果您定义了具有其他属性的自定义注释类,则可以使用(MyAnnotationClass * )view.annotation
。Instead of adding your own handler method using
addTarget
and then using theselectedAnnotations
property to figure out which annotation was tapped, I prefer using thecalloutAccessoryControlTapped
delegate method.In that delegate method, the annotation tapped is accessed using
view.annotation
and if you've defined a custom annotation class with additional properties, you can do a cast to access them using(MyAnnotationClass *)view.annotation
.