在iPhone中顺利移动视图

时间:2013-10-18 06:24:25

标签: iphone ios animation gyroscope panorama-control

在我的应用中,我尝试在偏航改变时移动标签。

视图移动完美但不顺利。

我使用陀螺仪和放大器尝试在我的应用程序中实现Panorama功能。

我的代码如下:

- (void)viewDidLoad {
    [super viewDidLoad];

    pre_yaw=0,xpost=11;

    _motionManager = [[CMMotionManager alloc] init];

    [_motionManager startDeviceMotionUpdates];
    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(doSomething) userInfo:nil repeats:YES];

}


- (void)doSomething
{

    _deviceMotion = [_motionManager deviceMotion];

    fyaw=_deviceMotion.attitude.yaw * 180 / M_PI;
    fpitch=_deviceMotion.attitude.pitch * 180 / M_PI;
    froll=_deviceMotion.attitude.roll * 180 / M_PI;

self.lbl_pitch.text=[ NSString stringWithFormat:@"%.0f",fpitch];
    self.lbl_yaw.text=[ NSString stringWithFormat:@"%.0f",fyaw];
    self.lbl_roll.text=[ NSString stringWithFormat:@"%.0f",froll];

    fyaw=fabsf(fyaw);

   if (fpitch<90 && fpitch>77) {
        lbl_isvalid.textColor=[UIColor blueColor];
        lbl_isvalid.text=@"Valid";

       if (fyaw>pre_yaw) {
           float diff=fyaw-pre_yaw;
           xpost=xpost+diff;
           lbl_move.frame=CGRectMake(xpost, 82, 42, 21);
       }

    }
    else{
        lbl_isvalid.textColor=[UIColor redColor];
        lbl_isvalid.text=@"IN-Valid";
    }

    pre_yaw=fyaw;
}

帮我解决这个问题。

谢谢,

1 个答案:

答案 0 :(得分:0)

尝试减少NSTimer的时间间隔。减少它直到你获得可接受的平滑度,但不能少。我们不想让CPU过载,从而缩短电池寿命,是吗?