首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从tableView中删除UITableViewCell中的单元格

从tableView中删除UITableViewCell中的单元格
EN

Stack Overflow用户
提问于 2017-04-19 11:57:40
回答 2查看 196关注 0票数 0

我有一个UITableViewCell和一个BEMCheckBox,当按下did时,我想删除这个单元格--这里是我的代码:

代码语言:javascript
运行
复制
func didTap(_ checkBox: BEMCheckBox) {
    let index = tableView?.indexPath(for: self)
    MenuViewController().products.removeObject(forKey: "Product\(index!.row)") // removes the cell from the database of the tableview
    tableView?.deleteRows(at: [index!], with: .fade)
}

下面是我如何获得tableView的方法

代码语言:javascript
运行
复制
extension UIView {
    func parentView<T: UIView>(of type: T.Type) -> T? {
        guard let view = self.superview else {
            return nil
        }
        return (view as? T) ?? view.parentView(of: T.self)
    }
}

extension UITableViewCell {
    var tableView: UITableView? {
        return self.parentView(of: UITableView.self)
    }
}

我得到了以下错误:

由于未命名的异常“NSInternalInconsistencyException”终止应用程序,原因是:“无效更新:节0中的无效行数。更新(2)之后包含在现有节中的行数必须等于更新(2)之前包含在该节中的行数,加上或减去从该节插入或删除的行数(0插入,1已删除),加上或减去移入或移出该节的行数(0移动,0移出)。”

EN

Stack Overflow用户

发布于 2017-04-19 12:08:08

您需要通知表视图您要修改的项目数:

代码语言:javascript
运行
复制
tableView?.beginUpdates()
// Perform the item and cell removal
tableView?.endUpdates()

始终确保插入/删除数据源中与表视图单元格数相同的项数。

您可以检查解耦这里

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43495091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档