ios - tableView.moveRow 的自定义动画(位于 : to:)

标签 ios swift uitableview animation

我有一个设置了三个部分的 UITableView,它按预期工作。

当点击一个按钮时,多个单元格将在第 0 部分和第 1 部分,或第 1 部分和第 2 部分之间移动。这一切都很好,但是默认动画对于我的需要来说太快了。是否可以为...定义自定义动画或完全删除默认动画

tableView.moveRow(at: IndexPath(row: 0, section: 0), to: IndexPath(row: 0, section: 1))

我已经尝试使用 tableView.insertRowstableView.deleteRows 将它们的动画设置为 .none 作为替代方案,但即便如此仍然是默认动画发生在行折叠在彼此之上并消失的地方。

提前致谢!

最佳答案

使用自定义动画实现自定义方法

iOS 中的默认动画是使用委托(delegate)方法和枚举值的组合触发的。动画被烘焙到 UITableView 组件中。要实现您自己的自定义动画,您需要定义自己的方法来处理 CRUD 操作,并根据您的时间需求重写 drawRect 方法以仔细实现您的动画。当然,您还需要处理自己的删除和数据源同步。

考虑以下内容

从哲学角度来看,如果偏离标准时间,您将远离此操作的标准化 iOS 体验。这样做,您的用户可能会感觉到您的应用程序性能较低。

关于ios - tableView.moveRow 的自定义动画(位于 : to:),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44997116/

相关文章:

ios - 如何从共享扩展中的主容器项目导入文件?

ios - 填充路径的贝塞尔路径?

ios - 如何让 SwiftUI 文本剪辑而不是用点截断 (...)

ios - 在 Swift 中将文本与关键字匹配

ios - 具有自动布局和 subview 的 UIView 动画

ios - 元数据已还原,我不明白为什么

ios - 在 iOS 中,使字体大小适用于所有设备大小的最佳做法是什么?

ios - iOS 11 不再支持将图案颜色设置为 UITableViewRowAction 的 backgroundColor

iphone - touchesEnded :withEvent: not being called from my UIView, 位于 UITableView 之上

ios - 为 UITableView 自定义详细信息披露按钮配置操作