重写iOS SDK中的viewForAnnotation方法
我想重写委托提供的 viewForAnnotation
方法。
我想再传递 1 个参数,type
,以便我可以根据注释的类型更改引脚的颜色。
例如:我希望它是 viewForAnnotation:type:
。
有什么帮助吗?
I want to override the viewForAnnotation
method provided by the delegate.
I want to pass 1 more argument, type
, so that I can change the color of pins according to the kind of annotation.
For ex: I would want it to be viewForAnnotation:type:
.
Any help ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要尝试“覆盖”/替换
viewForAnnotation
委托方法。相反,请将所需的任何属性添加到实现 MKAnnotation 协议的类(您实例化以传递给 addAnnotation 方法的属性)。
然后,在标准
viewForAnnotation
方法中,您可以在传递的annotation
参数中访问自定义属性。您应该首先检查注释的类是否是您的自定义类,然后在尝试引用自定义属性之前对其进行强制转换。如果您使用预定义的
MKPointAnnotation
类作为注释,则必须切换到您自己的自定义类。Don't try to "override"/replace the
viewForAnnotation
delegate method.Instead, add whatever properties you need to your class that implements the
MKAnnotation
protocol (the one you instantiate to pass to theaddAnnotation
method).Then in the standard
viewForAnnotation
method, you can access your custom properties in theannotation
parameter that is passed. You should first check if the annotation's class is your custom class and then cast it before trying to reference the custom properties.If you're using the pre-defined
MKPointAnnotation
class for your annotations, you'll have to switch to your own custom class.