【问题标题】:UITableViewCell accessory is not updating with searchResultsUITableViewCell 附件未使用 searchResults 更新
【发布时间】:2016-01-02 09:44:24
【问题描述】:

我用这段代码在我的 tableView 上添加了一个复选标记附件:-

 override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){

    if (PFUser.currentUser()?.objectForKey("userType")) as? String != "Std"{

    let cell = tableView.cellForRowAtIndexPath(indexPath) as! UsersTableViewCell

    if (cell.accessoryType == UITableViewCellAccessoryType.Checkmark){

        cell.accessoryType = UITableViewCellAccessoryType.None;


        selectedTextLabels[indexPath] = nil


     }else{
        cell.accessoryType = UITableViewCellAccessoryType.Checkmark;

        if (cell.accessoryType == UITableViewCellAccessoryType.Checkmark){

            if let Id = cell.channelIDLbl?.text {
                selectedTextLabels[indexPath] = Id

            }

         }
     }

   favoriteValues = Array(selectedTextLabels.values)

    print("\(favoriteValues)  outside")
}
}

它在第一次点击时工作正常我可以分配一个复选标记并再次点击同一个单元格会根据需要删除该复选标记但问题是当我使用搜索功能时,这个复选标记只是停留在它们的索引上(搜索结果是更新但不是附件)可能是因为selectedTextLabels[indexPath]这一行而发生的因为我在选定的indexPath上添加附件而不是单元格内的值所以我如何在值而不是indexPath上添加这个附件或还有其他方法吗??如果有人知道,请指导我

附: - 如果我的问题的细节不够,请告诉我我会解决的,谢谢:)

【问题讨论】:

    标签: ios swift uitableview


    【解决方案1】:

    注意cell的复用。如果上下滚动table view,可能cell会发生变化。这是因为cell上的数据在复用的时候不会清理掉。换句话说,你应该'如果没有实现“准备重用”方法,请不要检查单元格的数据。(在此方法中,这是清理数据的最佳时机)

    【讨论】:

    • 嘿@Lumialxk 谢谢你的回答,你能用简单的语言解释一下你刚才说的话吗?
    • 很抱歉,我没有注意到它是“选择”方法。但问题是您是否对“索引路径单元格”中的附件进行了处理。再次抱歉!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    相关资源
    最近更新 更多