2017年, public static XmlNode RequirementMinTime
{
get;
set;
}
宣布将取代MKMarkerAnnotationView
。如WWDC video在12:21所述,MKPinAnnotationView
具有三种状态:
您如何以编程方式设置“已选择带有标注的”状态,以便使其像在WWDC视频中一样显示?看来这应该是一件非常简单的事情,但是我在MapKit文档中绝对看不到任何东西,我可以使其可靠运行的唯一方法是:
文档链接:
答案 0 :(得分:1)
您可以使用canShowCallout
属性。
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
if annotation is MKUserLocation {
return nil
}
let reuseId = "pin"
var pinView = mapView.dequeueReusableAnnotationView(withIdentifier: reuseId) as? MKMarkerAnnotationView
if pinView == nil {
pinView = MKMarkerAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
pinView?.canShowCallout = true
let rightButton: AnyObject! = UIButton(type: UIButtonType.detailDisclosure)
pinView?.rightCalloutAccessoryView = rightButton as? UIView
}
else {
pinView?.annotation = annotation
}
return pinView
}
您需要选择注释以设置“已选择标注”状态。
mapView.selectAnnotation(annotation, animated: true)