我一直在与ga.getAllEvents()
和collectionViews
合作,了解它们是如何工作的,但这有点令人困惑。我有一个连接到TableViews
的集合视图以及设置给它自己的委托和数据源。但是在尝试使用didSelectItemAtIndexPath时,没有任何反应。该集合也完美显示,因此数据源功能运行良好。
这是我的代码:
ViewController
答案 0 :(得分:1)
我对此进行了测试,只要您的collectionview委托和数据源已连接,它就可以正常工作。您的问题是您调用timeCollectionView,您要在其中调用didSelectItemAtIndexPath声明中给出的泛型collectionView变量。我在下面以粗体突出显示:
func collectionView( collectionView :UICollectionView,didSelectItemAtIndexPath indexPath:NSIndexPath)
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
let cell = collectionView.cellForItemAtIndexPath(indexPath) as! MyCustomCollectionViewCell
cell.backgroundColor = UIColor.grayColor()
}
答案 1 :(得分:1)
如果未调用didSelectItemAtIndexPathItem:
,请确保已将delegate
和dataSource
正确设置到视图控制器。
答案 2 :(得分:0)
如果要在集合视图中选择项目时更改背景颜色,则应将UICollectionViewCell
子类化并覆盖highlighted
属性。
class DurationSelectionCollectionViewCell: UICollectionViewCell {
override var highlighted: Bool {
didSet {
contentView.backgroundColor = highlighted ? .grayColor() : nil
}
}
}