Используя CMDeviceMotion, вы можете получить объект CMAttitude с помощью «roll, pitch and yaw» - где, например, для телефона, удерживаемого в портретном режиме, «yaw» - это «азимут», «pitch» - это наклон телефона с уважение к земле, или зенит, а «крен» - это вектор, указывающий через экран, а не то, что вас интересует.
Все становится немного сложнее, потому что «азимут» - это проекция трехмерного магнитного вектора (указывающего на северный магнитный полюс) на плоскую «землю», которая меняется в зависимости от ориентации устройства, но с учетом этого понимания термины, такие как , этот должен быть гораздо более понятным. Если вам нужно, чтобы ваше приложение работало только в одной ориентации, все становится намного проще.
P.S. «высота» почти исключительно используется для обозначения высоты или высоты относительно заданного ориентира (уровень моря, геодезическая высота и т. д.). "Zenith" или "pitch" предпочтительны, и, поскольку вы работаете на iOS, вам следует придерживаться их схемы координат: (широта, долгота, альт), (высота, рыскание, крен).