gpt4 book ai didi

ios - UITableView 将单元​​格放在 TableView 页脚上时移动到最后一行

转载 作者:行者123 更新时间:2023-11-28 07:56:29 25 4
gpt4 key购买 nike

在 iOS 11 中,我们拥有新的拖放 API,它使用现有的 UITableViewDelegate 方法对同一表格 View 中的单行进行重新排序。我使用空 View 作为 tableView.tableFooterView 以隐藏最后一个实际单元格下方的单元格分隔符。但是,如果只有几个单元格并且显示了页脚,则在尝试将单元格移动到结束位置时可能会很尴尬,因为 tableview 页脚不接受放置。

有什么方法可以使用

func tableView(_ tableView: UITableView, targetIndexPathForMoveFromRowAt sourceIndexPath: IndexPath, toProposedIndexPath proposedDestinationIndexPath: IndexPath) -> IndexPath

UITableViewDropDelegate 中的另一种方法将 tableview 页脚中的下拉重定向到最后一个 IndexPath

我能想到的唯一其他选择是将页脚设为自定义放置目标,但这会调整放置预览的大小并更改处理放置的代码路径。

最佳答案

swift 5 iOS 13.5

我最终这样做了。

func tableView(_ tableView: UITableView, moveRowAt sourceIndexPath: IndexPath, to destinationIndexPath: IndexPath) {

//remove animation when no different destinationIndexPath is there, meaning we moved over tableview area with no cells

if sourceIndexPath == destinationIndexPath{
UIView.setAnimationsEnabled(false)
}
else{
UIView.setAnimationsEnabled(true)
}


myarray.remove(at: sourceIndexPath.row)

if sourceIndexPath != destinationIndexPath {
myarray.insert(todo, at: destinationIndexPath.row)
}

else if sourceIndexPath == destinationIndexPath{

let therow = myarray.count
myarray.insert(todo, at: therow)

//just to add a litle delay before row appears at the end. othewwise looks ugly.
DispatchQueue.main.asyncAfter(deadline: .now()+0.1) {
self.topTableView.reloadData()
}
}

}

关于ios - UITableView 将单元​​格放在 TableView 页脚上时移动到最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47915064/

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