【发布时间】:2013-02-15 22:50:06
【问题描述】:
我有一个 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
【问题讨论】:
-
您正在将值转换为整数类型。它最初是一个 CGFloat。
-
让
GameVolume成为CGFloat而不是NSInteger。它可以帮助你很多。 -
我该怎么做?抱歉,我对此还是比较陌生.. :-)
标签: ios objective-c avfoundation uislider