ios - 您如何支持通过滑动删除具有组合布局的 UICollectionView 列表中的一行?
问题描述
以前使用表视图,这是在UITableViewDataSource
委托回调中完成的tableView(_:commit:forRowAt:)
。与新集合视图相关的 API 中是否有等效功能,或者推荐的实现方式?
解决方案
用于创建布局的 UICollectionLayoutListConfiguration 具有作为采用索引路径的函数的属性leadingSwipeActionsConfigurationProvider
。trailingSwipeActionsConfigurationProvider
您的函数可以返回不同的滑动操作,或者nil
,对于列表的不同行:
var config = UICollectionLayoutListConfiguration(appearance: .plain)
config.trailingSwipeActionsConfigurationProvider = { indexPath in
let del = UIContextualAction(style: .destructive, title: "Delete") {
[weak self] action, view, completion in
self?.delete(at: indexPath)
completion(true)
}
return UISwipeActionsConfiguration(actions: [del])
}
写作delete(at:)
留给读者作为练习;基本上,您只需做与在任何集合视图中所做的完全相同的事情。
推荐阅读
- html - 如何在 Marp 或 Marpit 中对齐文本标题下方的图像
- html - Django将单词添加到图像url
- wordpress - Wordpress 如何将自定义帖子类型直接链接到自定义字段而不是父帖子页面
- docker - FirewallD 阻止到 Docker 容器的入站连接 OpenSUSE Leap 15.3
- javascript - 按住箭头键在反应中滚动网格
- python - PostgreSQL 错误“无法连接到服务器
- javascript - 如何跟踪每个点击的项目是否之前被点击过(或者是它的第一次点击)
- go - 用于orm方法的Golang gorm联合函数
- css - 基于内容高度的 CSS-Grid 填充行
- javascript - 如何在多个表行中通过选择(mysql数据库)获取动态值