Полагаю, вы хотите знать рулон машины, а не телефон.Телефон должен знать начальную опорную рамку.Итак, предположим, вы выровняете телефон с машиной на старте.Затем нажмите кнопку на телефоне.При нажатии этой кнопки в вашем коде сохраните настройку, которую вы получите от CMDeviceMotion.
Если вы хотите узнать, как рулит автомобиль в любой момент после этого, возьмите текущую позицию из CMDeviceMotion.Затем вызовите multiplyByInverseOfAttitude:
, указав в качестве параметра исходную опорную рамку.Это даст вам разницу между исходной системой отсчета и текущей.
Если вы берете из этого свойство крена, это должен быть угол крена автомобиля.