RangeRadiusMKMapView
这个Pod允许在自定义的MKMapView的子类中轻松集成可滑动的CircleOverlay。这个库100%是用Swift编写的,并从ResizableMKCircleOverlay(用Objective-C编写)中受到启发(部分重写)。
示例
要运行示例项目,请克隆仓库,然后首先从示例目录中运行pod install
。
简单使用
重要提示:RangeRadiusMKMapView默认遵从MKMapViewDelegate;如果您想自己遵从它,请详细阅读以下内容。
查看ViewController示例以获取初始化细节。
使用范围(可调整大小的CircleOverlay)设置半径
//DEFAULT_COORDINATE is a CLLocationCoordinate2D instance
self.mapView.setRadiusWithRange(centerCoordinate: DEFAULT_COORDINATE, startRadius: 200, minRadius: 100, maxRadius: 4000)
//this value is active by default - if not, the user can't change the radius
self.mapView.rangeIsActive = true
获取半径信息
需要在一个位置符合 MKRadiusDelegate,并在初始化 RangeRadiusMKMapView 时传递引用代理
self.mapView = RangeRadiusMKMapView(frame: .zero, delegate: self)
extension ViewController : MKRadiusDelegate {
func onRadiusChange(_ radius: Double) {
//From the example app
self.setRangeTitle(radius)
}
}
设置自定义 UI 属性并拥有自己的 MKMapViewDelegate
按照设计,最好并更有用拥有自己的类来符合 MKMapViewDelegate(RangeRadiusMKMapView 默认符合它),以处理更多有趣的事件,而不仅仅是单独的覆盖渲染 - 这就是使用这个 MKMapView 子类时所发生的事情。要能够自定义覆盖层(半径范围),您需要符合 MKMapViewDelegate 并实现 mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay)
函数
self.mapView.delegate = self
extension ViewController : MKMapViewDelegate {
func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
let properties = RangeRadiusProperties(fillColor: UIColor.red, alpha: 0.5, border: 50, borderColor: UIColor.black)
return self.mapView.getRenderer(from: overlay, properties: properties)
}
}
安装
RangeRadiusMKMapView 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中
pod 'RangeRadiusMKMapView'
作者
carlosmouracorreia,[email& protectsig;hnmurlj]@[email& protectsig;hmnlr.cn]
许可
RangeRadiusMKMapView 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。