我有一个带有自定义单元格的TableView
。标签smiles
包含链接。
如何将Image从链接链接到当前ImageView'cell?我的代码
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let identifier = "ClientCell"
self.cell = self.tableView.dequeueReusableCell(withIdentifier: identifier) as? customChatCell
let text = message[Constants.MessageFields.text] ?? ""
let selectedCell = self.tableView.cellForRow(at: indexPath) as? customChatCell
***
if text.range(of:"smiles") != nil {
let url = URL(string: text)
self.cell![indexPath.row].smile.kf.setImage(with: url)
}
***
}
不起作用。我在第self.cell![indexPath.row].smile.kf.setImage(with: url)
行出现错误
类型'customChatCell'没有下标成员
我正在使用翠鸟。如果我使用代码
self.cell.smile.kf.setImage(with: url)
将图像放入所有单元格,而不是当前图像。
请帮助我修复它。
答案 0 :(得分:2)
您应该删除将cell
引用保持在class
级别。您的cellForRow
应该看起来像这样,
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let identifier = "ClientCell"
let cell = tableView.dequeueReusableCell(withIdentifier: identifier) as? customChatCell
let text = message[Constants.MessageFields.text] ?? ""
if text.range(of:"smiles") != nil {
let url = URL(string: text)
cell.smile.kf.setImage(with: url)
} else {
// Reset image to nil here if it has no url
cell.smile.image = nil
}
}
请记住,您为UIView
中的每个单元格使用了一个customChatCell
(即UITableView
),因此,在使一个单元出队时,您有责任更新/重置{{1 }}元素,具体取决于每个单元格的数据。