在分段表格视图中重新加载后,MGSwipeTableCell左右按钮滑动视图未更新

时间:2018-09-13 15:06:12

标签: uitableview swift4 ios10 uisegmentedcontrol xcode9.4

我有一个细分的表格视图,分为2个细分,分别是“左”和“右”。两个细分都可以向左或向右滑动。我正在使用MGSwipeTableCell来实现这一点,并且效果很好。现在的问题是,当我进行滑动和切换细分时,表格视图单元格数据会更新,但左右滑动按钮不会更新。例如:按照下面的代码,如果我在“左”段上从左向右滑动,则将左按钮标题显示为“选择”,但是如果我切换到右段并在同一单元格行上进行滑动,则仍显示“选择” ”,而不是“添加”。如果我进行滚动并返回,则可以正常工作,即使在我登录时,单元格左按钮也确实将其记录为“添加”,但在UI上似乎没有更新。任何想法,可能是什么问题?任何帮助表示赞赏。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        if indexPath.row == myDataModel.totalCount()
        {
            guard let fCell = tableView.dequeueReusableCell(withIdentifier: CellIdentifiers.footerCell, for: indexPath) as? FooterTableViewCell else {return UITableViewCell()}

            fCell.delegate = self

            fCell.setFooterTitle(selectedSegmentIndex)

            return fCell
        }

        guard let cell = tableView.dequeueReusableCell(withIdentifier: CellIdentifiers.myCell, for: indexPath) as? MyTableViewCell else {return UITableViewCell()}

        cell.delegate = self

        if indexPath.row < myDataModel.totalCount() {

            //configure left buttons
            cell.leftButtons = [MGSwipeButton.init(title: (selectedSegmentIndex == 0) ? "Pick":"Add" , backgroundColor: UIColor.red)]

            cell.leftSwipeSettings.transition = .drag

            //configure right buttons
            cell.rightButtons = [MGSwipeButton.init(title: (selectedSegmentIndex == 0) ? "Drop":"Remove" , backgroundColor: UIColor.black)]
            cell.rightSwipeSettings.transition = .drag

            if let viewModel = myDataModel(indexPath.row) {
                cell.configure(viewModel)
            }

            if cell.swipeState != .none {
                cell.hideSwipe(animated: false)
                cell.refreshContentView()
            }

        }

        return cell

    }


 func updateTableOnSelection()
    {
        self.updateDataModel(selectedSegmentIndex)
        self.myTableView.contentOffset = .zero
        self.myTableView.layoutIfNeeded()
        self.myTableView.reloadData()
    }

0 个答案:

没有答案