我在UITableViewCellю
中左/右滑动如何制作它以便我可以从所选单元格中复制数据?
我试图使用它:
let cell = self.table.cellForRow(at: indexPath)
UIPasteboard.general.string = cell?.detailTextLabel?.text
但应用程序崩溃了
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])
}
答案 0 :(得分:5)
替换:
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
。
这应该有用。
答案 1 :(得分:1)
您可以使用数据数组中的字符串,如下所示:
UIPasteboard.general.string = myData[indexPath.row]
注意到这一点:
let cell = self.table.cellForRow(at: indexPath)
UIPasteboard.general.string = cell?.detailTextLabel?.text