单元格“完成”后删除 UITableViewCell 文本字段

Posted

技术标签:

【中文标题】单元格“完成”后删除 UITableViewCell 文本字段【英文标题】:Strikethrough UITableViewCell text field after cell is "complete" 【发布时间】:2017-11-13 22:30:10 【问题描述】:

如何在 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])


【问题讨论】:

【参考方案1】:

您应该将标签文本显示为属性文本。试试这个代码。未实现 getRespectiveCell 方法。输入您自己的逻辑来获取该索引路径的相应单元格

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

【讨论】:

感谢@ahmed。我能够使用以下内容获得相应的单元格:let cell = self.dailyTable.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)

以上是关于单元格“完成”后删除 UITableViewCell 文本字段的主要内容,如果未能解决你的问题,请参考以下文章

尝试通过 viewWithTag 获取 UIImageView 引用后崩溃

记住动画后的单元格状态

在 UITableView 单元格中显示 xib 视图

UICollectionView中删除一个单元格后刷新单元格布局

UITableCell 显示不正确的内容

excel 如何删除单元格内数据后多余的空格和换行符