- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
基本上我拥有的是一个非常简单的 UICollectionViewCell 子类,它通过 isSelected 属性上的属性观察器更改其背景颜色和其他一些美学特征:
class SelectableCell: UICollectionViewCell {
override var isSelected: Bool{
didSet{
if(isSelected)
{
self.backgroundColor = UIColor.white
}
else
{
self.backgroundColor = UIColor.black
}
}
}
}
这或多或少地按预期工作,如果我在我的集合 View 中点击这些单元格之一,背景会相应地改变。
问题是,如果我选择一个单元格,然后决定滚动浏览我的集合,该单元格将取消选择,直到我完成滚动然后重新选择
(NOTE: when I say re-select I don't mean that the delegate functions like didSelectItem are triggered - just that the isSelected property changes back to true)
这似乎只有在我在另一个单元格的边界内开始滚动时才会发生。
所以我假设正在发生的事情是,当我按下时它会立即取消选择单元格,当它检测到我正在滚动而不是点击时它会回滚选择状态并重新选择正确的单元格.
有什么方法可以让它只在润色时提交,或者让它在那个中间时期保持在选定状态?
最佳答案
这是一次只能选择一个单元格时 Collection View 处理选择的方式。一种可能的解决方法是使用多项选择。在这种情况下,您必须自己管理取消选择先前选择的单元格。像这样:
// somewhere in viewDidLoad
collectionView.allowsMultipleSelection = true
//then in your delegate method
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
guard let selectedIndexPaths = collectionView.indexPathsForSelectedItems else { return }
for selectedIndexPath in selectedIndexPaths where selectedIndexPath != indexPath {
collectionView.deselectItem(at: selectedIndexPath, animated: true)
}
}
关于ios - 如何使 UICollectionView 仅在触碰而不是触碰时选择一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51558243/
嗨...我有一个 UIButton,当我按下按钮时会执行一些操作,同时执行操作。 有谁知道请回答一下.. 最佳答案 以下是按下按钮时添加操作的方法。 但是,对我来说,你的问题不清楚......
我是一名优秀的程序员,十分优秀!