Вы должны представить это с помощью векторов, ниже есть метод делегата, который подробно описывает, что вам нужно сделать.
Сейчас я еще не слишком много смотрю на API, но, думаю, ваш вектор направления возвращается вам из акселерометра.
Существует делегат метод, который возвращает значения, которые вам понадобятся.
Следующий код может помочь из учебника, который вы должны посмотреть здесь :
- (void)acceleratedInX:(float)xx Y:(float)yy Z:(float)zz
{
// Create Status feedback string
NSString *xstring = [NSString stringWithFormat:
@"X (roll, %4.1f%%): %f\nY (pitch %4.1f%%): %f\nZ (%4.1f%%) : %f",
100.0 - (xx + 1.0) * 100.0, xx,
100.0 - (yy + 1.0) * 100.0, yy,
100.0 - (zz + 1.0) * 100.0, zz
];
self.textView.text = xstring;
// Revert Arrow and then rotate to new coords
float angle = atan2(xx, yy);
angle += M_PI / 2.0;
CGAffineTransform affineTransform = CGAffineTransformIdentity;
affineTransform = CGAffineTransformConcat( affineTransform, CGAffineTransformMakeRotation(angle));
self.xarrow.transform = affineTransform;
}
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
[self acceleratedInX:acceleration.x Y:acceleration.y Z:acceleration.z];
}
Существует также легко читаемая статья, которая ясно объясняет это здесь вместе с примером кода .