2017-02-03 27 views
0

我試圖在從數據庫異步加載圖像後更新我的tableview單元格的高度。 用例如下: 單元格可見時獲取圖像。所以我必須在它自己的單元中調用`loadImageWith(callBack:() - >())。 當我收到callBack時,我想用圖像更新特定的單元格。 對於圖像沒有佔位符等,所以如果沒有圖像可用的單元格是空的。從數據庫中提取圖像後更新單元格高度

我試圖打電話給
self.tableView.beginUpdates() self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.fade) self.tableView.endUpdates()
回調像其他線程描述,但顯然這會導致一個無限循環。 在將圖像添加到圖像視圖後,我也嘗試致電cell.needsLayout或/和cell.layoutIfNeeded。 對該行沒有影響。

我沒有使用任何第三方庫,因爲我需要從本地數據庫而不是從服務器獲取圖像數據。

如果我將所有圖像加載到viewDidLoad中,並致電
self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.fade)
然後它可以工作,但要求只加載可見單元格。

希望任何有這個問題的解決方案。

回答

0

您可以設置單元格的高度後,已上傳的圖片作爲

self.tableView.beginUpdates() 
self.tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.fade) 
let selectedCell = tableView.cellForRow(at: indexPath) 
selectedCell.height = yourHeight 
self.tableView.endUpdates() 
相關問題