我还没有看到Swift 3解决方案,但我希望将自定义图像显示为表格附件(表格右侧的图标)。这部分有效。
但是,当点击此按钮/配件时,我需要将其更改为其他accessoryView
以向用户表明已发生下载。
我已经设置了一种方法来做到这一点,但截至目前还没有发生任何变化。这是我的代码:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var imageView : UIImageView
imageView = UIImageView(frame:CGRect(x: 0, y: 0, width: 50, height: 50))
imageView.image = UIImage(named:"downloadbutton.png")
cell.accessoryView = imageView
return cell
}
override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
var imageView : UIImageView
imageView = UIImageView(frame:CGRect(x: 0, y: 0, width: 50, height: 50))
imageView.image = UIImage(named:"downloaded.png")
let cell = tableView.cellForRow(at: indexPath)
cell?.accessoryView = imageView
}
是否有更好的方法可以确保在点击accessoryView
时,它会转变为第二个accessoryView
?
答案 0 :(得分:0)
如文档中所述,设置单元格accessoryButtonTappedForRowWith
时不会调用accessoryView
。只有在accessoryType
设置为两种“披露”类型之一时才会调用它。
您需要将accessoryView
设置为UIButton
设置所需的图像。
您还需要在数据模型中保留状态信息,指明应显示哪两个图像。
然后更新cellForRow
以根据该行的数据设置具有正确图像的按钮。
最后,在您的按钮处理程序中,更新给定行的数据的状态,然后告诉表视图重新加载该indexPath的行。