CoreMotion'un yeni özelliklerini deniyorum, her şeyden önce referans çerçevesini ayarlama imkanı, ancak bir DeviceMotionHandler ve CMAttitudeReferenceFrameXTrueNorthZVertical için ayarlanmış referans çerçevesi kullanırsam çıktı CMAttitudeReferenceFrameXArbitraryCorrectedZVertical'in bazıları. Ben uygulamayı her zaman aynı yaw rotasyonda benim masamıza saygı ile başlatmak ve farklı başlangıç yaw rotasyon test, ama sonuç her zaman aynıdır.CoreMotion Referans çerçevesiyle iOS 5 davranışı çalışmıyor
motionManager = [[CMMotionManager alloc] init];
motionManager.showsDeviceMovementDisplay = YES;
motionManager.deviceMotionUpdateInterval = 1.0/60.0;
CMDeviceMotionHandler motionHandler =^(CMDeviceMotion *motion, NSError *error) {
NSLog(@"%f %f %f", motion.attitude.pitch, motion.attitude.roll, motion.attitude.yaw);
};
[motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical toQueue:[NSOperationQueue currentQueue] withHandler:motionHandler];
Sorunumun çözümünü buldum, ancak önceki kodun neden çalışmadığını anlayamıyorum. HareketHandler'da sadece bir CMAttitude değişkeni * a ekliyorum. İlk işleyicisi tanımlarsanız
- (void)viewDidLoad
{
[super viewDidLoad];
motionManager = [[CMMotionManager alloc] init];
motionManager.showsDeviceMovementDisplay = YES;
motionManager.deviceMotionUpdateInterval = 1.0/60.0;
CMDeviceMotionHandler motionHandler =^(CMDeviceMotion *motion, NSError *error) {
CMAttitude *a = motionManager.deviceMotion.attitude;
labelAngle.text = [NSString stringWithFormat:@"%f %f %f",a.pitch, a.roll,a.yaw];
labelAngle2.text = [NSString stringWithFormat:@"%f %f %f", motion.attitude.pitch, motion.attitude.roll, motion.attitude.yaw];
};
[motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical toQueue:[NSOperationQueue currentQueue] withHandler:motionHandler];}
Aynı davranışı görüyorum. Bloğa iletilen hareket parametresindeki tutum, "normal" tutum gibi görünüyor, deviceMotion özelliğindeki tutum ise referans karesiyle dengeleniyor gibi görünüyor. Bu bir hata mı, yoksa bu davranışa güvenip inanamayacağımı merak ediyorum. İkiyi birleştirmek, iPhone'un ilginç manyetik davranışını kararlı bir jiro türevi yönlendirme ile telafi etmeyi mümkün kılar. – fishinear
Bunu Apple'a karşı bir hata olarak bildirdim: https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/59/wo/1sukWbI5nvOZQ2Y6MPBXnw/14.66 – fishinear