Tag: 加速度计

“推”匹配UIInterpolatingMotionEffect? (即访问UIInterpolatingMotionEffect上的“物理”)

使用UIInterpolatingMotionEffect,扭转iPhone,你可以有一个图像移动。 现在想象一下,使用UICollisionBehavior和UIDynamicItemBehavior,你会在屏幕上“反弹”一个红色块。 当用户扭曲iPhone:我想要的箱子“开始移动”与类似的物理感觉使用UIInterpolatingMotionEffect。 http://tinypic.com/player.php?v=b67mlc%3E&s=8#.VBVEq0uZNFx 另外:UX解释:弹性效果(例如:iPhone上的SMS)与iOS中的视差图像效果具有相同的“感觉”。 (通过“感觉”,我的意思是同样的速度,加速度。)这将是第三个效果:像“视差”,它会“轻微移动”,但会“继续移动”,反弹一点。 (你可以说,有点结合了弹性列表效果和视差效果的感觉。) 现在:使用CMAccelerometerData来描述我的描述是相对容易的,并且使用UIPushBehaviorModeInstantaneous来应用推送。 但是这是很多杂乱的代码。 相反,UIInterpolatingMotionEffect是可笑的容易使用。 本质上,我怎么能从UIInterpolatingMotionEffect(我将作为推)使用这些值。 干杯! 类似的想法… 只需显示UIInterpolatingMotionEffect的值? 它简单地问:如何才能轻松地从UIInterpolatingMotionEffect中“获取”值? 即,看起来不可思议的人不得不仔细分类CALayer等等。

使用CPBPressureTouchGestureRecognizer轻敲压力强度检测

它与一个UIButton很好地工作: – (void) viewDidLoad { [super viewDidLoad]; CPBPressureTouchGestureRecognizer* recognizer = [[CPBPressureTouchGestureRecognizer alloc] initWithTarget:self action:@selector(A_button:)]; [A_button addGestureRecognizer: recognizer]; [recognizer release]; } – (void) A_button: (CPBPressureTouchGestureRecognizer*) recognizer { [pan_A setGain:recognizer.pressure]; [pan_A] play; } 我试图使用更多,但只有第二个工作: – (void) viewDidLoad { [super viewDidLoad]; CPBPressureTouchGestureRecognizer* recognizer1 = [[CPBPressureTouchGestureRecognizer alloc] initWithTarget:self action:@selector(A_button:)]; [A_button addGestureRecognizer: recognizer1]; CPBPressureTouchGestureRecognizer* recognizer2 = [[CPBPressureTouchGestureRecognizer alloc] initWithTarget:self action:@selector(B_button:)]; […]

如何使用加速度计数步骤?

我必须开发与此计步器应用程序相同的function 我已经观察这个计步器应用程序非常高的细节。 这不是一个完美的计步器应用程序。 例如,如果你坐在一个地方并握手,它也可以检测步数和距离。 忽略这个理想和重力行为,因为在这个应用程序的说明中已经提到,你应该绑定你的iPhone或者你应该把它放在你的口袋里计算步骤。 这样,我发现这个应用程序工作得很好,它几乎检测到所有的步骤。 我的问题是:我根据上面的逻辑开发了一个样本,但是没有达到这个水平。 例如,有时它会同时检测2-3个步骤。 有时它工作正常。 我的代码: 在viewDidLoad中: [[UIAccelerometer sharedAccelerometer] setUpdateInterval:0.2] – (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { const float violence = 1.2; static BOOL beenhere; BOOL shake = FALSE; if (beenhere) return; beenhere = TRUE; if (acceleration.x > violence || acceleration.x < (-1* violence)) shake = TRUE; if (acceleration.y > violence || […]

在iPhone上的陀螺仪

我需要使用iPhone上的陀螺仪一些帮助。 在特定的情况下,我无法理解CMAttitude关于俯仰,滚转和偏航的读数。 这是我的代码 – (void)handleDeviceMotion:(CMDeviceMotion*)motion { NSLog(@"Yaw %f ",attitude.yaw * 180 / M_PI); NSLog(@"Pitch %f ",attitude.pitch * 180 / M_PI); NSLog(@"Roll %f ",attitude.roll * 180 / M_PI); } 假设iPhone正坐在飞机上,如下图所示: 俯仰,滚转和偏航(几乎)0度,任何绕轴旋转都会返回可理解的读数。 例如,向右转动设备,偏航减小并且Pitch and Roll保持在0。 现在iPhone处于以下位置: 并重新开始测量。 读数是:Yaw = 0,Pitch = 90,Roll = 0 由于设备围绕此轴旋转,音高增加。 把iPhone移到这个位置: 读数是:Yaw = 30,Pitch = 90,Roll = 0 再一次,由于设备围绕横摆轴旋转,所以这个值改变而其他值不改变。 围绕Roll轴移动设备: 读数是:Yaw = […]

iOS:准确地确定加速计输出的碰撞能量

我正在创build一个音叉应用程序,在那里您可以将iPhone拍到另一只手的手掌上,或者在柔软的表面上进行设置,以便设置叉子。 所以我想检测每个“凹凸”所包含的能量, (编辑:删除了一吨gumpf) 谁能帮我破解这个吗?

加速度计低通滤波

仍然在BigNerdRanch iOS开发书上。 在“加速度计”一章中,他们首先实现了加速度计跟踪,但相当令人费解。 然后他们build议通过改变原始码来应用低通滤波器: – (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { HypnosisView *hv = (HypnosisView *)[self view]; [hv setXShift:10.0 * [acceleration x]]; [hv setYShift:10.0 * [acceleration y]]; [hv setNeedsDisplay]; } 对此: – (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { HypnosisView *hv = (HypnosisView *)[self view]; float xShift = [hv xShift] * 0.8 + [accel x] * 2.0; float […]

使用CoreMotion框架在后台接收加速度计更新

我正在使用下面的代码来获取加速计数据(使用CoreMotion框架): CMMotionManager *motionManager = [[CMMotionManager alloc] init]; motionManager.accelerometerUpdateInterval = 1.0 / 60.0; [motionManager startAccelerometerUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) { NSLog(@"ACCELEROMETER DATA = %@",accelerometerData); }]; 当应用程序处于前景模式时,我正在接收日志,但是当它进入后台时,只有当应用程序中的音乐正在播放时才会收到日志。 我已经将以下内容添加到应用程序信息plist文件中: – Required background modes – App registers for location updates – App plays audio or streams audio/video using AirPlay 问题是:当音乐不播放时,如何在后台接收加速度计更新?