Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Can';t更改颜色:类型为';MKAnnotationView';没有成员';pinTintColor';_Swift_Annotations_Mkmapview_Mkannotationview - Fatal编程技术网

Swift Can';t更改颜色:类型为';MKAnnotationView';没有成员';pinTintColor';

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

我正在尝试在地图上更改为pin颜色,但我不知道如何使用MKAnnotationView类来执行此操作。我在这里看到了一个与此相同的问题,但没有得到正确的回答(即建议的答案不起作用)。这是我的密码:

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颜色来解决这个问题。太棒了!祝你好运