UISlider - 适用于体积0.0到1.0 - iOS XCODE

时间:2013-03-01 12:22:09

标签: ios objective-c avfoundation uislider

我想使用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

2 个答案:

答案 0 :(得分:0)

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

以下是文档:Apple Docs for UISlider

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

答案 1 :(得分:0)

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

minimumvalue:0 最大值:100

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

-(float)setSliderValue:(float)inputValue
{
    return inputValue*100;
}

快乐编码