У меня есть сегментированное табличное представление с 2 сегментами, скажем, слева и справа.Оба сегмента могут иметь пролистывание влево или вправо.Я использую MGSwipeTableCell для достижения этой цели, и она отлично работает.Теперь проблема заключается в том, что когда я делаю свайп и переключаю сегменты, данные ячейки табличного представления обновляются, но левая и правая кнопки свипирования не обновляются.Например: согласно приведенному ниже коду, если я сделаю пролистывание слева направо на левом сегменте, оно будет отображать заголовок левой кнопки как «Выбор», но если я переключусь на правый сегмент и проведу пролистывание в той же строке ячейки, оно все равно будет отображать «Выбор».вместо «Добавить».Если я делаю прокрутку и возвращаюсь, она работает нормально, также, когда я регистрируюсь, левая кнопка ячейки регистрирует ее как «Добавить», но в пользовательском интерфейсе она не обновляется.Любая идея, в чем может быть проблема?Любая помощь приветствуется.
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()
}