Изменение UIAccelerometer updateInterval через UISlider

Я пытаюсь изменить updateInterval моего UIAcceleromter через UISlider, который есть в моем.xib. Мой NSLogs показывает мне значения отлично, но интервал акселерометра не увеличивается в скорости, когда я перемещаю ползунок. Я не уверен, что не так.

Я ценю любую предложенную помощь. Вот мой код:

ViewController.h:

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UIAccelerometerDelegate> {

}

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

@end

ViewController.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

1 ответ

Решение

Нет строки кода, которая изменяет ваш интервал обновления акселерометра. Все, что вы делаете, это запоминаете значение ползунка в float и вывод его через NSLog,

Значение акселерометра устанавливается только при отображении вашего вида.

Вам нужно хранить акселерометр как свойство вашего объекта и делать что-то вроде

self.accelerometer.updateInterval = value;

в вашем sliderValueChanged: метод.

Другие вопросы по тегам