如何支持滑动删除具有组合布局的 UICollectionView 列表中的行?

问题描述 投票:0回答:1

以前在表视图中,这是在

UITableViewDataSource
委托回调
tableView(_:commit:forRowAt:)
中完成的。与新的集合视图相关的 API 中是否有等效的功能,或者推荐的实现方式?

ios uicollectionview uikit uicollectionviewcompositionallayout
1个回答
9
投票

用于创建布局的 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:)
留给读者作为练习;基本上,您只需做与在 any 集合视图中所做的完全相同的事情。

© www.soinside.com 2019 - 2024. All rights reserved.