gpt4 book ai didi

ios - Swift:UITableView - 滑动以删除 - 如何在滑动时让单元格内容不移动

转载 作者:行者123 更新时间:2023-11-28 14:56:17 26 4
gpt4 key购买 nike

我已经在 UITableView 上实现了滑动删除,它在默认行为下正常工作,即单元格的内容在像在图像上一样滑动时向左移动。我想要实现(自定义)的是在滑动时让这个删除按钮出现在单元格内容上,即单元格中的文本不会移动。

我正在用这个方法

 func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {

let delete = UITableViewRowAction(style: .destructive, title: "Delete") { (action, indexPath) in

self.deletionDidStart(of: self.element(for: indexPath)!, at: indexPath)

// use helper function to delete element at given index path
let deleted = self.deleteElement(for: indexPath)

// refresh tableView
self.tableView.beginUpdates()
self.tableView.deleteRows(at: [indexPath], with: .automatic)
if let deletedSection = deleted.section {
self.tableView.deleteSections(IndexSet(integer: indexPath.section), with: .automatic)
self.deletedSection(deletedSection, at: indexPath)
}
self.tableView.endUpdates()

// call deletion event handler
self.deletedElement(deleted.element!, at: indexPath)
}

return [delete]
}

enter image description here

最佳答案

您应该覆盖UITableViewCellsetEditing 方法,

override func setEditing(_ editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)

let leadingSpace = 15
let editingOffset = 80

if editing == true {
self.labelLeadingConstraint.constant = CGFloat(leadingSpace + editingOffset)
} else {
self.labelLeadingConstraint.constant = CGFloat(leadingSpace);
}

UIView.animate(withDuration: 0.1) {
self.layoutIfNeeded()
}
}

您需要使用 UILabel 的 前导约束的 IBOutlet 并按此方式执行。

这只是建议,实际代码可能会根据您的 Cell 布局进行更改。

更新

也可以使用以下函数。

func tableView(_ tableView: UITableView, willBeginEditingRowAt indexPath: IndexPath) {
let cell = tableView.cellForRow(at: indexPath)
cell?.setEditing(true, animated: true)
}

func tableView(_ tableView: UITableView, didEndEditingRowAt indexPath: IndexPath?) {
if let indexPath = indexPath {
let cell = tableView.cellForRow(at: indexPath)
cell?.setEditing(false, animated: true)
}
}

希望对您有所帮助。

关于ios - Swift:UITableView - 滑动以删除 - 如何在滑动时让单元格内容不移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49293951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com