Swift Can';t更改颜色:类型为';MKAnnotationView';没有成员';pinTintColor';
我正在尝试在地图上更改为pin颜色,但我不知道如何使用MKAnnotationView类来执行此操作。我在这里看到了一个与此相同的问题,但没有得到正确的回答(即建议的答案不起作用)。这是我的密码:Swift Can';t更改颜色:类型为';MKAnnotationView';没有成员';pinTintColor';,swift,annotations,mkmapview,mkannotationview,Swift,Annotations,Mkmapview,Mkannotationview,我正在尝试在地图上更改为pin颜色,但我不知道如何使用MKAnnotationView类来执行此操作。我在这里看到了一个与此相同的问题,但没有得到正确的回答(即建议的答案不起作用)。这是我的密码: func映射视图(\mapView:MKMapView,viewforannotation:MKAnnotation)->MKAnnotationView?{ 让identifier=“Placemark” var annotationView=mapView.dequeueReusableAnnot
func映射视图(\mapView:MKMapView,viewforannotation:MKAnnotation)->MKAnnotationView?{
让identifier=“Placemark”
var annotationView=mapView.dequeueReusableAnnotationView(带标识符:标识符)
如果annotationView==nil{
annotationView=MKPinAnnotationView(注释:注释,重用标识符:标识符)
annotationView?.canShowCallout=true
annotationView?.pinTintColor=.green//引发错误(“MKAnnotationView”类型的值没有成员“pinTintColor”)!!
annotationView?.leftCalloutAccessoryView=UIButton(类型:。详细信息)
}否则{
annotationView?.annotation=注释
}
返回注释视图
}
我做错了什么,如何修复它?可能是您的
注释视图
被推断为MKAnnotationView
而不是MKPinAnnotationView
。你可以试试这样
func映射视图(\mapView:MKMapView,viewforannotation:MKAnnotation)->MKAnnotationView?{
让identifier=“Placemark”
var annotationView=mapView.dequeueReusableAnnotationView(带标识符:标识符)
如果annotationView==nil{
让newAnnotationView=MKPinAnnotationView(注释:注释,重用标识符:标识符)
newAnnotationView.canShowCallout=true
newAnnotationView.pinTintColor=.green
newAnnotationView.leftCalloutAccessoryView=UIButton(类型:。详细信息)
返回newAnnotationView
}否则{
annotationView?.annotation=注释
}
返回注释视图
}
可能是您的注释视图被推断为MKAnnotationView
而不是MKPinAnnotationView
。你可以试试这样
func映射视图(\mapView:MKMapView,viewforannotation:MKAnnotation)->MKAnnotationView?{
让identifier=“Placemark”
var annotationView=mapView.dequeueReusableAnnotationView(带标识符:标识符)
如果annotationView==nil{
让newAnnotationView=MKPinAnnotationView(注释:注释,重用标识符:标识符)
newAnnotationView.canShowCallout=true
newAnnotationView.pinTintColor=.green
newAnnotationView.leftCalloutAccessoryView=UIButton(类型:。详细信息)
返回newAnnotationView
}否则{
annotationView?.annotation=注释
}
返回注释视图
}
问题出在下面一行。var annotationView=mapView.dequeueReusableAnnotationView(withIdentifier:identifier)问题在于以下几行。var annotationView=mapView.dequeueReusableAnnotationView(withIdentifier:identifier)您是对的。这就是问题所在。但是,我通过定义一个新的MKPinAnnotationView并使用它访问pin颜色来解决这个问题。太棒了!祝你好运你说得对。这就是问题所在。但是,我通过定义一个新的MKPinAnnotationView并使用它访问pin颜色来解决这个问题。太棒了!祝你好运