在UIContextualAction期间和之后,如何删除UITableViewCell中的文本?(如果不能在期间完成,只有在之后才有帮助)
Strikethrough example

func tableView(_ tableView: UITableView,
               leadingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration?
{
    let doneAction = UIContextualAction(style: .normal, title:  "DONE", handler: { (ac:UIContextualAction, view:UIView, success:(Bool) -> Void) in
        print("Done left")

        self.dailyTasks.append("\(self.dailyTasks[indexPath.row])")
        self.dailyTasks.remove(at: indexPath.row)

        UserDefaults.standard.set(self.dailyTasks, forKey: "dailyTasks")

        self.dailyTable.reloadData()

        success(true)

    })
    doneAction.backgroundColor = .darkGray

    return UISwipeActionsConfiguration(actions: [doneAction])

}

最佳答案

您应该将标签文本显示为attributeText。试试这个代码。未实现getRespectiveCell方法。使用自己的逻辑为索引xpath获取相应的单元格

let attributeString: NSMutableAttributedString =  NSMutableAttributedString(string: "Your Text")
    attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length))

let cell = getRespectiveCell(indexPath.row)
cell.textLabel.attributedText = attributeString

10-08 05:32
查看更多