2010-11-30 129 views
0

我想一些文件上傳到服務器顯示UIProgressView。這些文件在UItableview上列出。我的問題是:問題在每個表格單元格

我應該做的,顯示在每個表格單元UIProgressView,並顯示每個文件的進度被上傳。

我當前的代碼能夠顯示在每個單元的UIProgressView但是當我嘗試上傳,進度條不動了。該程序假設每次上傳1個文件,第一個文件完成後,第二個文件將開始上傳。作爲響應,第一個文件完成後,第一個文件的進度條將停止,並且secong文件的進度條將開始移動。希望這是明確的。我真的需要一些幫助,我無法在網上找到它。提前感謝。由於

回答

0

你必須保持在一個陣列中的每個單元格的進度值。

我想你必須在cellForRowAtIndexPath方法中設置UIProgressView對象的進度值,所以無論何時你從你的網絡代碼獲取回調函數時,都需要調用[self.tableView reloadData]。 ..

0

可能的解決方法(可能會被優化):(很抱歉的格式,無法得到它的工作)

  • 在您的tableView

  • 下每個單元創建UIProgressView在視圖控制器中創建一個字段,在那裏你將存儲已經上傳的字節數(bytesAlreadyUploaded) - 你應該從你的上傳器重新接收這些信息。

  • 創建一個字段,您將存儲字節數要上傳當前上傳(bytesToUpload)

  • 創建一個字段,您將分配指針當前使用的進度視圖(progressViewCurrentlyUsed)

  • 創建中,你將會讓你進步的方法:
  • (無效){refreshProgress progressViewCurrentlyUsed.progress = bytesAlreadyUploaded/ (CGFloat的)bytesToUpload;
    }
  • 創建的NSTimer,這將調用此方法refreshProgress幾次第二:

refreshTimer = [的NSTimer timerWithTimeInterval:0。1 target:self selector:@selector(refreshProgress) userInfo:nil repeatats:YES];
[[NSRunLoop mainRunLoop] addTimer:refreshTimer forMode:NSDefaultRunLoopMode];

  • 當您更改被上傳的文件,改變progressViewCurrentlyUsed,bytesToUpload和零bytesAlreadyUploaded
+0

您好,感謝您的建議。我瞭解前幾點,但一路上迷路了。你能詳細說明嗎?謝謝謝謝 – tan 2010-12-01 02:32:08