zoukankan      html  css  js  c++  java
  • [ios2][转]iOS摇动检测 (UIAccelerometer)

    加速计(UIAccelerometer)是一个单例模式的类,所以需要通过方法sharedAccelerometer获取其唯一的实例。
    加速计需要设置的主要有两个:
    一个是设置其代理,用以执行获取加速计信息的方法;
     另一个是设置加速计获取信息的频率。 最高支持每秒100次。
    UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer];
    accelerometer.delegate = self;
    accelerometer.updateInterval = 1.0/30.0f;

    下面是加速计的代理方法,需要符合协议<UIAccelerometerDelegate>.
    -(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
    {
    //    NSString *str = [NSString stringWithFormat:@"x:%g y:%g z:%g",acceleration.x,acceleration.y,acceleration.z];
    //    NSLog(@"%@",str);

        // 检测摇动, 1.5为轻摇,2.0为重摇
    //    if (fabsf(acceleration.x)>1.8||
    //        fabsf(acceleration.y)>1.8||
    //        fabsf(acceleration.z>1.8)) {
    //        NSLog(@"你摇动我了~");
    //    }
        static NSInteger shakeCount = 0;
        static NSDate *shakeStart;
        NSDate *now = [[NSDate alloc]init];
        NSDate *checkDate = [[NSDate alloc]initWithTimeInterval:1.5f sinceDate:shakeStart];
        if ([now compare:checkDate] == NSOrderedDescending || shakeStart == nil) {
            shakeCount = 0;
            [shakeStart release];
            shakeStart = [[NSDate alloc]init];
        }
        [now release];
        [checkDate release];
        
        if (fabsf(acceleration.x)>1.7||
            fabsf(acceleration.y)>1.7||
            fabsf(acceleration.z)>1.7) {
            shakeCount ++;
            if (shakeCount >4) {
                NSLog(@"你摇动我了~");
                shakeCount = 0;
                [shakeStart release];
                shakeStart = [[NSDate alloc]init];
            }
        }
    }

     

  • 相关阅读:
    流程配置中心选不到销售订单新变更单
    python中判断NULL
    BOS的长度范围(字符)
    业务对象功能授权无法找到用户权限申请单
    116环境无法上传附件
    审批流XML的岗位存储的值
    solidity语法4——合约(类似面向对象中的Class)
    solidity语法3——全局变量,表达式,控制结构
    solidity语法1——概述
    solidity语法2——类型
  • 原文地址:https://www.cnblogs.com/jinjiantong/p/3222254.html
Copyright © 2011-2022 走看看