我正在尝试更改引脚的标注视图。我使用包含标签和图像的.xib,它应该在用户点击注释时出现。
我使用此代码:
func mapView(mapView: MKMapView!, didSelectAnnotationView annotation: MKAnnotationView!) -> UIView!
{
println("delegate")
let pin = annotation as! CustomPointAnnotation
if let infoView = UIView.viewFromNibName("AnnInfoView") as? AnnInfoView {
infoView.nameLabel.text = pin.title
if let photo = pin.imageName {
infoView.placePhoto.image = UIImage(named: photo)
} else {
infoView.placePhoto.image = UIImage(named: "generic")
}
return infoView
} else {
return nil
}
}
问题是我收到了这个错误:
Objective-C方法'mapView:didSelectAnnotationView:'由方法提供'mapView(:didSelectAnnotationView :)'与协议'MKMapViewDelegate'中的可选需求方法'mapView(:didSelectAnnotationView :)'冲突/ p>
并且无法找到解决方案。
我使用了这个Objective-C库:https://github.com/RVLVR/REVClusterMap 它集成了注释。
我在这个库的文件中找到了这个方法:
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
if( [delegate respondsToSelector:@selector(mapView:didSelectAnnotationView:)] )
{
[delegate mapView:mapView didSelectAnnotationView:view];
}
}
但即使我发表评论,错误仍然不会消失:(
我做错了什么?
谢谢!
答案 0 :(得分:3)
MKMapViewDelegate的委托方法didSelectAnnotationView
没有返回值。改变这一行
func mapView(mapView: MKMapView!, didSelectAnnotationView annotation: MKAnnotationView!) -> UIView!
到
func mapView(mapView: MKMapView!, didSelectAnnotationView annotation: MKAnnotationView!)