您如何支持滑动以删除具有组合布局的 UICollectionView 列表中的行?
How do you support swiping to delete a row in a UICollectionView list with compositional layout?
以前 table 视图是在 UITableViewDataSource
委托回调 tableView(_:commit:forRowAt:)
中完成的。在与 the new collection views 关联的 API 中是否有等效的功能,或者推荐的实现方式?
您用于创建布局的 UICollectionLayoutListConfiguration 具有 leadingSwipeActionsConfigurationProvider
和 trailingSwipeActionsConfigurationProvider
属性,它们是采用索引路径的函数。您的函数可以 return 不同的滑动操作,或 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:)
留作 reader 的练习;基本上,您只需做与在 any 集合视图中所做的完全相同的事情。
以前 table 视图是在 UITableViewDataSource
委托回调 tableView(_:commit:forRowAt:)
中完成的。在与 the new collection views 关联的 API 中是否有等效的功能,或者推荐的实现方式?
您用于创建布局的 UICollectionLayoutListConfiguration 具有 leadingSwipeActionsConfigurationProvider
和 trailingSwipeActionsConfigurationProvider
属性,它们是采用索引路径的函数。您的函数可以 return 不同的滑动操作,或 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:)
留作 reader 的练习;基本上,您只需做与在 any 集合视图中所做的完全相同的事情。