2011-06-15 71 views
1

我的iPhone应用程序从互联网播放流式音频,我有一个UISlider来擦洗已经下载的文件。UISlider变量最大值

此UISlider具有透明轨道,并且位于UIProgressView之上。

UIProgressView向用户显示流式音频下载进度。

一切工作正常,但我无法弄清楚如何限制擦除功能不超出已经下载的音频文件,由此UIProgressView代表。

欢迎任何建议。

回答

4

您可以检查改变的值是否大于进度然后将其设置为进度。假设你正在处理UISliderUIControlEventValueChanged事件在此方法中,

- (void)valueChanged:(UISlider *)sender { 
    if (self.slider.value > self.progressView.progress) { 
     [self.slider setValue:self.progressView.progress animated:YES]; 
    } 
} 

或更改基于进度框。

+0

非常感谢!你为我节省了很多时间,并且避免了我从沮丧中解脱出来。另一件事,也许你可以帮助我。有时当我尝试读取最新的音频数据包时,我会得到-1值,这会使滑块变为零值,从而停止正在播放的音频。我怎么总是备份最新的数据包(在C或Objective-C中),然后在它丢失时变为-1? – Winston 2011-06-15 13:57:15

+0

取决于数据类型。我将声明该数据类型的一个实例变量,并将其更改为我收到的每个有效值。因此,当我需要它时,它会得到最新的数据包,因为在这种情况下,当我收到-1时。 – 2011-06-16 19:36:47