Изменение 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:
метод.