0

我有一个 UISlider,我想用它来管理使用 AVAudioPlayer 的音量级别

我发现的问题是,值设置在 0 和 1 之间。它只记录 0 或 1。

但是,我希望它能够将 0.1、0.2、0.3 等之间的变量确认到 1.0,这样我就可以使用这个值来调整游戏声音。

有谁知道我该怎么做?

我目前有...

- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[slider setValue:[[NSUserDefaults standardUserDefaults] floatForKey:@"sliderValue"]];

(void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(IBAction)slidetheslider {
[[NSUserDefaults standardUserDefaults] setFloat:[slider value] forKey:@"sliderValue"];
    GameSounds = slider.value;
    NSLog (@"Volume Level %d", GameSounds);

在下一个 VC 上,我重新加载保存的值....

GameVolume = [[NSUserDefaults standardUserDefaults] floatForKey:@"sliderValue"];
NSLog (@"Volume Slider %d", GameVolume);

此后,我使用 GameVolume 作为音量的参考。

问题是如果我尝试 0.0 到 1.0,它只会给我一个 0 或 1。

如果我尝试 0 - 100 然后将 GameVolume 更改为此...

GameVolume = [[NSUserDefaults standardUserDefaults] floatForKey:@"sliderValue"]/100; NSLog (@"Volume Slider %d", GameVolume);

它仍然只给我一个 0 或 1

4

2 回答 2

0

设置 minimumValue 和 maximumValue 属性。它们默认为 0.0 和 1.0,但是是浮点数,可以设置为您喜欢的任何值。

这是文档: UISlider 的 Apple 文档

如果您只读取 0 和 1 的值,您可能使用了不正确的类型。请发布相关代码。

于 2013-03-01T12:27:37.197 回答
0

您可以使用一个数学选项。将最大值和最小值设置为 0 到 100,当您需要一个值时,将当前滑块值除以 100

最小值:0 最大值:100

-(float)getValueOfSlider:(CGFloat)sliderValue
{
    return sliderValue/100;
}

-(float)setSliderValue:(float)inputValue
{
    return inputValue*100;
}
于 2013-03-01T12:39:28.740 回答