繁体   English   中英

Swift 3:TableView刷新不适用于行操作

[英]Swift 3 : TableView refresh doesn't work with row action

我正在使用“接受”滑动动作。 当我单击“滑动”按钮时,所有内容都可以在Web服务器上正常运行,但是tableView不会更新。 实际上,我在getOnay函数中使用tableView.reloadData() ,但是它不起作用。

有趣的是,当我按下两次滑动动作按钮时,它将删除tableView上的行。

这是我的代码:

override func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowAction]? {

    let onay = UITableViewRowAction(style: .normal, title: "Accept") { action, index in
        let ip = editActionsForRowAt.row
        let taskInfo:Task = self.onayArray[ip]

        self.getOnay(id: taskInfo.id, status: "okay")

        self.onayArray.remove(at: index.row)
        self.loadOnaylar(userID: self.onayCode.userId, code: self.onayCode.systemCode)
    }
    onay.backgroundColor = .green

    return [onay]
}

您调用函数从您的数组中删除元素( self.onayArray.remove(at: index.row)之后您调用getOnay你说电话tableView.reloadData() 因此,在从数组中删除元素之前,您要重新加载数据。 当您第二次执行滑动操作时,将调用reloadData ,最终更新前一个操作的效果。

因此,更改getOnay的顺序并remove(at: index.row)函数:

self.onayArray.remove(at: index.row)
self.getOnay(id: taskInfo.id, status: "okay")

您是否尝试在主队列中使用reloadData()?

 DispatchQueue.main.async {
     tableView.reloadData()
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM