我正在尝试实施MKUserTrackingButton(这是iOS 11 SDK中的新功能)。这个"按钮"实际上从UIView继承,所以我只是在我的Map和Identity Inspector中放置一个UIView实例,将它链接到MKUserTrackingButton类,在我的代码和viewDidLoad()中添加了一个插座。
我按以下方式初始化它:
self.centerMapButton = MKUserTrackingButton.init(mapView: self.mapView)
但是,没有任何作用,我的地图上只有一个空白视图。
PS:这是关于这一新功能的WWDC 2017会议(1:25):https://developer.apple.com/videos/play/wwdc2017/237/
这是我在viewDidLoad()中调用的方法来实现按钮:
func setupUserTrackingButtonAndScaleView() {
mapView.showsUserLocation = true
let button = MKUserTrackingButton(mapView: mapView)
button.layer.backgroundColor = UIColor(white: 1, alpha: 0.8).cgColor
button.layer.borderColor = UIColor.white.cgColor
button.layer.borderWidth = 1
button.layer.cornerRadius = 5
button.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(button)
let scale = MKScaleView(mapView: mapView)
scale.legendAlignment = .trailing
scale.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(scale)
NSLayoutConstraint.activate([button.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -10),
button.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -10),
scale.trailingAnchor.constraint(equalTo: button.leadingAnchor, constant: -10),
scale.centerYAnchor.constraint(equalTo: button.centerYAnchor)])
}
请注意,我的ViewController中有一个mapView实例。
答案 0 :(得分:0)
我刚刚针对我的MapKit应用运行了你的代码,它运行良好。确保将正确的mapView实例传递给MKUserTrackingButton。