MKMapViewを使ってiPhone上に地図を表示しています。 Mapは、磁気ヘッド情報を使用してiPhone orentationに関して指向するように回転できます。MKMapがiOSで北に向いているときにコンパスが消える
私はコンパスを提示するのが好きですが、地図が北向きになるたびに消えます!電話機がもう少し回転しても再び表示されますが、これは気をそらすものです。
回転機能は、いくつかの条件がそうように満たされたときに切り替えられる:
@IBOutlet weak var mapView: MKMapView!
// here comes some other code
if settings.useMagneticHeading && validUserLocation
{
mapView.isRotateEnabled = true
mapView.showsCompass = true
locationService.startUpdatingHeading()
}
回転をデリゲートすることによって行われる。
func tracingHeading(currentHeading: CLLocationDirection)
{
if settings.useMagneticHeading && validUserLocation
{
mapView.camera.heading = currentHeading
mapView.setCamera(mapView.camera, animated: true)
}
}
CoreLocationものはlocationServiceシングルトンにカプセル化されます。
マップが北向きの場合でも、コンパスを表示するにはどうすればいいですか?私はこの振る舞いは文書化されていないと思われるバグではないと思います。 (iOS 9とiOS 10にあります)
ありがとうございます!したがって、iOS 10をサポートする場合は、難しい方法でコンパスビューを実装する必要があります。奇妙なことに、iOS 11 Betaアップデートの前にこの機能が文書化されましたか? –