gpt4 book ai didi

ios - 如何从框架库 Xcode8 使用 MapView

转载 作者:行者123 更新时间:2023-11-28 06:12:56 24 4
gpt4 key购买 nike

我创建了一个自定义图 block 服务并将其添加到 mapView,然后它就可以正常工作了。然后我使用相同的代码并在 Xcode 8 中创建了一个具有 MapView 返回类型的框架库。然后我使用了一个示例测试应用程序并将该库导入它,我调用了库中使用的方法并将其添加到 mapView。 所以我的问题是当我调用 mapView 的方法时它显示 MapKit map 而不是我的自定义 map

库中使用的代码

import Foundation
import MapKit
public class mapLib: NSObject{

public class func createMap(mapView: MKMapView) ->MKMapView{
let mapView = mapView
//custom map URL
let template = "http://tile.openstreetmap.org/{z}/{x}/{y}.png"
let overlay = MKTileOverlay(urlTemplate: template)
overlay.canReplaceMapContent = true
mapView.add(overlay, level: .aboveLabels)
return mapView;
}
}

应用中使用的代码

import UIKit
import MapKit
import mapLib
class ViewController: UIViewController {
@IBOutlet weak var mapV: MKMapView!

override func viewDidLoad() {
super.viewDidLoad()

let view = mapLib.createMap(mapView: mapV)
mapV.addOverlays(view.overlays)

//any additional setup after loading the view, typically from a nib.
}

我需要澄清我将要采用的方法或任何其他方法都可行:)

最佳答案

您缺少将 self 添加为 delegate 并实现 func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer 方法, 你可以在你的图书馆里这样做

像这样

import Foundation
import MapKit
public class mapLib: NSObject{

public class func createMap(mapView: MKMapView) ->MKMapView{
let mapView = mapView
//custom map URL
let template = "http://tile.openstreetmap.org/{z}/{x}/{y}.png"
let overlay = MKTileOverlay(urlTemplate: template)
overlay.canReplaceMapContent = true
mapView.add(overlay, level: .aboveLabels)
mapView.delegate = self
return mapView;
}
}

extension mapLib : MKMapViewDelegate{

func mapView(_ mapView: MKMapView, rendererFor overlay: MKOverlay) -> MKOverlayRenderer {
if let overlayTile = overlay as? MKTileOverlay{
let overLayRenderer = MKTileOverlayRenderer(tileOverlay: overlayTile)
return overLayRenderer
}

return MKOverlayRenderer(overlay: overlay)
}
}

关于ios - 如何从框架库 Xcode8 使用 MapView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45974436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com