我正在用Swift编写一个基于位置的应用程序。
我使MapView可以显示指南针,但我想将指南针的位置从右上角更改为左下角。
有专家知道如何移动它吗?
在此先感谢您。
Wes*_*een 11
您可以通过将指南针的可见性设置为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)
Run Code Online (Sandbox Code Playgroud)
您可以使用自适应可见性,因此新指南针的行为将与原始指南针相同。
您可以尝试更改此设置:
mapView.layoutMargins
Run Code Online (Sandbox Code Playgroud)
或子类化MKMapView组件:
import MapKit
class MyMapView: MKMapView {
override func layoutSubviews() {
super.layoutSubviews()
if let compassView = self.subviews.filter({ $0.isKindOfClass(NSClassFromString("MKCompassView")!) }).first {
compassView.frame = CGRectMake(15, 30, 36, 36)
}
}
}
Run Code Online (Sandbox Code Playgroud)