![](/img/trans.png)
[英]Using UIMenuController in iOS 14 for UICollectionView?
[英]How to enabled multiple selection in UICollectionView using list configuration in iOS 14?
我正在尝试实现类似选择样式的 iOS 消息应用程序:在编辑模式下,所有行的左侧都有一个复选标记。
我将 UICollectionView 与 Apple 在 iOS 14 中引入的列表配置一起使用,似乎多选的实现已经改变。
以Modern Collection Views/Lists/ReorderableListViewController.swift
在实施现代集合视图为〔实施例。
这就是我所做的:
viewDidLoad
底部添加以下代码: navigationItem.setLeftBarButton(editButtonItem, animated: true)
collectionView.allowsMultipleSelection = true
collectionView.allowsMultipleSelectionDuringEditing = true
setEditing
方法:override func setEditing(_ editing: Bool, animated: Bool) {
super.setEditing(editing, animated: true)
self.collectionView.isEditing = editing
}
UICollectionViewDelegate
:extension ReorderableListViewController: UICollectionViewDelegate {
func collectionView(_ collectionView: UICollectionView,
shouldBeginMultipleSelectionInteractionAt indexPath: IndexPath) -> Bool {
return true
}
func collectionView(_ collectionView: UICollectionView,
didBeginMultipleSelectionInteractionAt indexPath: IndexPath) {
print(#function)
self.collectionView.isEditing = true
}
}
configureDataSource
):cell.accessories = [.disclosureIndicator(), .reorder(displayed:.whenEditing)]
通过这些更改,我可以看到当点击编辑按钮时切换手柄。 但是左侧没有复选标记来指示当前选定的项目。
尝试这样做:
collectionView.allowsMultipleSelection = false
cell.accessories = [
.disclosureIndicator(),
.reorder(displayed:.whenEditing),
.multiselect()
]
复选标记将在编辑模式下显示。
我想出了怎么做。 使用自定义配件并将其放在领先位置。
在configureDataSource
的cellRegistration
:
let checkmark = UIImage(systemName: "checkmark.circle.fill")
let checkmarkImageView = UIImageView(image: checkmark)
let checkmarkViewConguration = UICellAccessory.CustomViewConfiguration(
customView: checkmarkImageView,
placement: .leading(displayed: .whenEditing, at: { _ in 0 }))
cell.accessories = [
.customView(configuration: checkmarkViewConguration),
.disclosureIndicator(),
.reorder(displayed:.whenEditing)
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.