В пределах UITableView
у меня есть пользовательская ячейка с кнопкой загрузки. После нажатия кнопки «Загрузить» я обновляю тег indexPath.row
, и в этой ячейке отображается представление прогресса выполнения загрузки. Проблема заключается в том, что когда пользователь прокручивает и ячейка становится невидимой, этот конкретный вид прогресса начинает отображаться в другой ячейке.UIProgressView показывает неправильную строку, когда uitableview является прокруткой
Это моя cellForRowAtIndexPath
функция:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:CellWithDownload! = tableView.dequeueReusableCellWithIdentifier("CellWithDownload") as CellWithDownload
var title = rowDataAll[indexPath.row].valueForKey("BayanTitle") as String
cell.TitleLabel.text = title
cell.AuthorLabel.text = rowDataAll[indexPath.row].valueForKey("Artist") as? String
var countOfLikesString =
cell.downloadButton.tag = indexPath.row
cell.downloadButton.addTarget(self, action: Selector("downloadAudio:"), forControlEvents: UIControlEvents.TouchUpInside)
// If cell becomes visible again, then star
if let isDownloading = rowDataAll[indexPath.row].valueForKey("isDownloading") {
if (isDownloading as NSString == "true") {
cell.showDownloading()
cell.progressView.progress = getDownloadObjectWithURL(url).progress
} else if (isDownloading as NSString == "completed") {
cell.hideDownloading()
}
}
return cell
}
Пожалуйста, советы.
Что вы делаете в 'downloadAudio:'? –
В моей загрузке Audio, я использую: 'var indexSelectedTableView: NSInteger = sender.tag rowDataAll [indexSelectedTableView] .setValue (" true ", forKey:" isDownloading ") var cell: CellWithDownload = self.tableView? .cellForRowAtIndexPath (NSIndexPath (forRow: sender.tag, inSection: 0)) as CellWithDownload cell.showDownloading() ' –