2013-03-08 14 views
0

我想在用戶將圖像保存到相機膠捲時顯示UIProgressView保存到相機膠捲期間,如何確定已下載了多少?

我需要知道在給定的點下載了多少圖像以確定進度指示器應顯示的內容。我如何確定這一點?

我做這樣的事情:

- (void)updateSaveProgressBar 
{  
    if ([self.saveProgressView progress] < 1) { 
    self.saveProgressView.progress = (float)receivedData/(float)totalData; 
    [NSTimer scheduledTimerWithTimeInterval:0.05 target:self selector:@selector(updateSaveProgressBar) userInfo:nil repeats:NO]; 
    } 
} 

self.saveProgressViewUIProgressView。在這個例子中,我如何確定receivedData的值?

謝謝。

+0

你在使用UIImageWriteToSavedPhotosAlbum功能嗎?沒有辦法取得進展。它應該只需要一兩秒鐘。只要顯示一個活動指標,如果你想。 – rmaddy 2013-03-08 04:56:28

+0

我正在使用'UIImageWriteToSavedPhotosAlbum'。有沒有另外一種方法可以保存到相機膠捲,我可以取得進展?例如,Dropbox應用程序如何執行此操作? – Steven 2013-03-08 05:04:14

+0

此外,我正在顯示圖像的較小版本,然後提供保存仍然偏遠的全尺寸。所以下載需要花費不止幾秒鐘的時間,尤其是在用戶使用質量較差的網絡時。 – Steven 2013-03-08 05:11:33

回答

0

爲了顯示遠程文件下載的進度,您必須使用NSURLConnection進行異步下載,並在每次連接接收數據時更新進度(connection:didReceiveData:)。連接成功完成後,您可以撥打UIImageWriteToSavedPhotosAlbum將圖像保存到相機膠捲。另外,UIImageWriteToSavedPhotosAlbum有回調選擇器在保存完成時調用,您可以使用該選擇器向用戶顯示下載和保存映像的所有過程都已完成。

UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); 

完成選擇

- (void)    image: (UIImage *) image 
    didFinishSavingWithError: (NSError *) error 
       contextInfo: (void *) contextInfo 
{ 

} 

祝您好運!

+0

這似乎很接近@rmaddy上面提供的答案。標記爲正確的答案,謝謝。 – Steven 2013-03-09 19:14:55

相關問題