Получить абсолютное вращение с помощью CMDeviceMotion?

Я создаю простую игру с использованием Sprite Kit, экран не поворачивается, но я хочу знать, под каким углом пользователь держит телефон для игрового механика.

Значения, которые я хочу получить, могут быть легко получены с помощью акселерометра (x, y), но я считаю, что это ненадежно, поэтому я пытаюсь архивировать лучшие результаты сCMDeviceMotion, Я мог бы получить эквивалентdata.acceleration.y но я не могу понять, как получить эквивалентdata.acceleration.x.

if let data = motionManager.accelerometerData? {
    let y = CGFloat(data.acceleration.y)
    let x = CGFloat(data.acceleration.x)
}

// Device Motion
if let attitude = motionManager.deviceMotion?.attitude? {
    let y = CGFloat(-attitude.pitch * 2 / M_PI) // This matches closely with data.acceleration.y
    let x = ??????????
}

Как рассчитать эквивалентdata.acceleration.x с помощьюCMDeviceMotion?

Ответы на вопрос(3)

Ваш ответ на вопрос