选中后,在UITableViewCell中更改图像

时间:2015-12-10 14:43:23

标签: ios objective-c uitableview

我想更改自定义UITableViewCell中的图片,具体取决于是否已选中。 因此,当用户选择一行时,必须更改两行中的图像(当前选择的图像和要选择的图像)。 从reloadData拨打reloadRowsAtIndexPathsdidSelectRowAtIndexPath并不起作用,因为它会取消选择当前所选行,而我不想这样做。 从reloadDatawillDeselectRowAtIndexPath拨打willSelectRowAtIndexPath也会导致同样的问题。 有人知道解决方案吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试过根据指示所选行的存储属性以编程方式选择cellForRowAtIndexPath中的行?

我会采用reloadDatareloadRowsAtIndexPaths didSelectRowAtIndexPath的方法,但首先将所选行保存在属性中,以便您可以在单元格中手动将其设置为选中状态正在重新绘制。

例如:

var selectedRow:NSIndexPath? = nil

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    selectedRow = indexPath
    tableView.reloadData() // or reload a specific row
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("TableViewCellReuseIdentifier")
    if (indexPath == selectedRow) {
        cell!.selected = true
    } else {
        cell!.selected = false
    }
}