测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2017年2月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Marek Fort 维护。
AnnotationETA 将让您轻松实现带有时尚图钉、自定义颜色和显示 ETA 的 cool calloutView 的 MapKit 标注!
要运行示例项目,请克隆存储库,并首先从 Example 目录运行 pod install
。
将 AnnotationETA/Classes 下的所有文件包含到您的项目中。
在 func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation)
中将您的 MKAnnotationView
设置为 AnnotationEtaView
let annotationEtaView = EtaAnnotationView(annotation: annotation, reuseIdentifier: "etaAnnotationIdentifier")
annotationView = annotationEtaView
要显示选择标注时的 ETA
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
guard let annotation = view.annotation else {return}
if annotation is MKUserLocation {return}
view.leftCalloutAccessoryView = DirectionButton(destinationCoordinate: annotation.coordinate, locationManager: self.locationManager, transportType: .automobile, destinationName: annotation.title ?? "")
}
使用详情按钮,您可以指向另一个视图控制器,在那里您可以显示有关标注的附加信息。在初始化 etaAnnotationView 下方写这段代码
annotationEtaView.setDetailShowButton()
annotationEtaView.rightButton?.addTarget(self, action: #selector(detailButtonTapped), for: .touchUpInside)
然后,应该触发显示 detailViewController 的函数,并传递从选定的标注中获取的信息。例如像这样
func detailButtonTapped() {
guard
mapView.selectedAnnotations.count == 1,
let detailViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "detailVC") as? DetailViewController
else {return}
detailViewController.annotation = mapView.selectedAnnotations[0]
self.present(detailViewController, animated: true, completion: nil)
}
图钉颜色不仅设置了图钉的颜色,还设置了左右 CalloutAccessoryView
annotationEtaView.pinColor = UIColor.blue
要获取更详细的实现信息,请查看示例或与我联系。
fortmarek,[email protected]
AnnotationETA可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。