2011-06-15 69 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