0

我正在尝试通过我的 .xib 中的 UISlider 更改我的 UIAcceleromter 的 updateInterval。我的 NSLogs 完美地显示了这些值,但是当我移动滑块时,加速度计的间隔并没有增加速度。我不确定出了什么问题。

我感谢提供的任何帮助。这是我的代码:

视图控制器.h:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UIAccelerometerDelegate> {

}

- (IBAction)sliderValueChanged:(UISlider *)slider;

@end

视图控制器.m:

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize XAxis, YAxis, delta;

float value;

- (void)viewWillAppear:(BOOL)animated
{   
    UIAccelerometer *accel = [UIAccelerometer sharedAccelerometer];
    accel.delegate = self;
    accel.updateInterval = 1.0f * value;

    NSLog(@"Value: %f",value);
}

- (void)viewDidLoad
{
    [super viewDidLoad];
}

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration
{
    NSLog(@"X: %g",acceleration.x);
    NSLog(@"Y: %g",acceleration.y);
    NSLog(@"Z: %g",acceleration.z);
}

- (IBAction) sliderValueChanged:(UISlider *)slider 
{  
    value = slider.value;
    NSLog(@"Value: %f",slider.value);
} 

- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

@end
4

1 回答 1

3

没有一行代码可以改变加速度计的更新间隔。您所做的就是记住 a 中滑块的值float并通过NSLog.

加速度计值仅在您的视图出现时设置。

您需要将加速度计存储为对象的属性并执行类似的操作

self.accelerometer.updateInterval = value;

在你的sliderValueChanged:方法中。

于 2012-07-24T17:26:03.893 回答