指南针在 MKMapView 中的放置或位置?

Compass placing or position in a MKMapView?

我正在编写一个基于位置的应用程序 Swift。

我让我的 MapView 可以显示指南针,但我想将指南针位置从右上角更改为左下角。

有高手知道怎么搬吗?

先谢谢你。

你可以尝试改变这个:

mapView.layoutMargins 

或者子类化 MKMapView 组件:

import MapKit

class MyMapView: MKMapView {    
    override func layoutSubviews() {
        super.layoutSubviews()

        if let compassView = self.subviews.filter({ [=11=].isKindOfClass(NSClassFromString("MKCompassView")!) }).first {
            compassView.frame = CGRectMake(15, 30, 36, 36)
        }
    }
}

您可以通过将罗盘可见性设置为 false 然后添加一个新的罗盘来实现此目的

mapView.showsCompass = false

let compassBtn = MKCompassButton(mapView:mapView)
compassBtn.frame.origin = CGPoint(x: self.view.frame.maxX - 40, y: 20)
compassBtn.compassVisibility = .adaptive
view.addSubview(compassBtn)

您可以使用自适应可见性,这样您的新指南针就会像原来的一样。