我还没有看到针对此问题的 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
?
最佳答案
如文档中所述,当您设置单元格的 accessoryView
时,不会调用 accessoryButtonTappedForRowWith
。仅当 accessoryType
设置为两种“公开”类型之一时才会调用它。
您需要将 accessoryView
设置为包含所需图像的 UIButton
设置。
您还需要在数据模型中保留状态信息,指示应显示两个图像中的哪一个。
然后更新 cellForRow
以根据该行的数据使用正确的图像设置按钮。
最后,在按钮处理程序中,更新给定行的数据状态,然后告诉 TableView 重新加载该索引路径的行。
关于swift - 将表中的自定义accessoryView更改为Swift 3中的不同accessoryView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49421400/