我有一个细分的表格视图,分为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()
}