作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 UICollectionView,并且 collecitonView 有足够的项目。
当通过触摸选择第 5 个单元格时,我想取消第 5 个单元格选择并返回到最后选择的单元格。
UICollectionView 有如下选项。
var lastSelectedIndexPath: IndexPath
let collectionView = UICollectionView(frame: .zero, collectionViewLayout: UICollectionViewFlowLayout())
collectionView.allowsMultipleSelection = false
collectionView.allowsSelection = true
...
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if shouldRollBackSelection {
// just test code
collectionView.selectItem(at: lastSelectedIndexPath, animated: false, scrollPosition: UICollectionView.ScrollPosition())
} else {
lastSelectedIndexPath = indexPath
}
}
如果调用了collectionView.selectItem(...)函数,最后选中的cell的isSelected属性的didSet会被调用两次。
First call是false to true,Second call是true to false。结果,最后选中的单元格的 isSelected 属性为 false。
我想回滚 UICollectionView 的 Cell 的选择。我的意思是我不想允许选择特定的单元格。
最佳答案
为那些您不想选择的单元格禁用用户交互
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath)
if indexPath.row == 4 {
cell.isUserInteractionEnabled = false
}
return cell
}
关于ios - 如何调用 selectItemAt : function at collectionView(_:didSelectItemAt:)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59046218/
我有一个 UICollectionView,并且 collecitonView 有足够的项目。 当通过触摸选择第 5 个单元格时,我想取消第 5 个单元格选择并返回到最后选择的单元格。 UIColle
我是一名优秀的程序员,十分优秀!