AnnotationETA 0.1.2

AnnotationETA 0.1.2

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2017年2月
SwiftSwift 版本3.0
SPM支持 SPM

Marek Fort 维护。



AnnotationETA

AnnotationETA

AnnotationETA 将让您轻松实现带有时尚图钉、自定义颜色和显示 ETA 的 cool calloutView 的 MapKit 标注!

demo

示例

要运行示例项目,请克隆存储库,并首先从 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文件。