复制所选单元格中的数据(Swift)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复制所选单元格中的数据(Swift)相关的知识,希望对你有一定的参考价值。

我在UITableViewCellю中左/右滑动

我该如何制作它以便我可以从所选单元格中复制数据?

我试着用它:

let cell = self.table.cellForRow(at: indexPath)
UIPasteboard.general.string = cell?.detailTextLabel?.text

但应用程序崩溃了

enter image description here

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell")!
    cell.textLabel?.text = myData[indexPath.row]
    return cell
}

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

            //let cell = self.table.cellForRow(at: indexPath)
            //UIPasteboard.general.string = cell?.detailTextLabel?.text

        success(true)
    })
    closeAction.title = "Copy"
    closeAction.backgroundColor = .purple

    return UISwipeActionsConfiguration(actions: [closeAction])
}
答案

更换:

let cell = self.table.cellForRow(at: indexPath)
UIPasteboard.general.string = cell?.detailTextLabel?.text

附:

let cell = tableView.cellForRow(at: indexPath)
UIPasteboard.general.string = cell?.textLabel?.text

因为你在tableView方法中使用cellForRowAt。所以我用table替换tableView,在第二行用detailTextLabel替换textLabel

这应该工作。

另一答案

您可以使用数据数组中的字符串,如下所示:

UIPasteboard.general.string = myData[indexPath.row]

而不是这个:

let cell = self.table.cellForRow(at: indexPath)
UIPasteboard.general.string = cell?.detailTextLabel?.text

以上是关于复制所选单元格中的数据(Swift)的主要内容,如果未能解决你的问题,请参考以下文章

Swift:Tableview 中特定单元格中的 addSublayer 不是每个单元格

单元格中的 swift GestureRecognizer

如何更改 Swift 中表格视图单元格中的默认删除按钮?

UITableViewController 单元格中的索引超出范围 - swift

在 Swift 中的自定义单元格中存储/检索核心数据

单个 UITableview 单元格中的多种字体大小 (Swift)