第一次单击时未显示uitableviewcell附件类型

时间:2018-06-28 08:15:46

标签: xamarin xamarin.ios

我有自定义的UITableViewCell,并且此代码可在单击行时创建附件

 public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
    {
        if (this.checkedIndexPath != null)
        {
            var uncheckCell = tableView.CellAt(checkedIndexPath) as UITableViewCell;
            if (uncheckCell != null)
            { 
                uncheckCell.Accessory = UITableViewCellAccessory.None;
            }
        }
        if (tableView.CellAt(indexPath) is UITableViewCell cell)
        {
            cell.Accessory = UITableViewCellAccessory.Checkmark; 
        }
        this.checkedIndexPath = indexPath;
    }

我有问题。当我第一次单击单元格时。附件类型不变。当我单击另一个单元格时,附件类型会更改。但是,除非单击表中的另一个单元格,否则第二次单击鼠标的附件类型不会更改。

1 个答案:

答案 0 :(得分:0)

您需要重新加载当前单元格以使更改生效

tableView.ReloadRows(indexPath, UITableViewRowAnimation.None);

在代码末尾添加它

 public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
    {
        if (this.checkedIndexPath != null)
        {
            var uncheckCell = tableView.CellAt(checkedIndexPath) as UITableViewCell;
            if (uncheckCell != null)
            { 
                uncheckCell.Accessory = UITableViewCellAccessory.None;
            }
        }
        if (tableView.CellAt(indexPath) is UITableViewCell cell)
        {
            cell.Accessory = UITableViewCellAccessory.Checkmark; 
        }
        this.checkedIndexPath = indexPath;

        //Reload current cell
        tableView.ReloadRows(indexPath, UITableViewRowAnimation.None);
    }