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

时间:2020-10-06 17:54:16

标签: ios uicollectionview uikit uicollectionviewcompositionallayout

以前使用表视图是在UITableViewDataSource委托回调tableView(_:commit:forRowAt:)中完成的。与the new collection views相关联的API中是否存在等效的功能,或建议的实现方式?

1 个答案:

答案 0 :(得分:1)

用于创建布局的UICollectionLayoutListConfiguration具有leadingSwipeActionsConfigurationProvidertrailingSwipeActionsConfigurationProvider属性,这些属性采用索引路径。您的函数可以针对列表的不同行返回不同的滑动操作或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 集合视图中执行的操作完全相同。