无法选择集合视图中的项目,Swift

时间:2016-05-08 14:28:21

标签: ios swift uicollectionview

我一直在与ga.getAllEvents()collectionViews合作,了解它们是如何工作的,但这有点令人困惑。我有一个连接到TableViews的集合视图以及设置给它自己的委托和数据源。但是在尝试使用didSelectItemAtIndexPath时,没有任何反应。该集合也完美显示,因此数据源功能运行良好。

这是我的代码:

ViewController

3 个答案:

答案 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:,请确保已将delegatedataSource正确设置到视图控制器。

答案 2 :(得分:0)

如果要在集合视图中选择项目时更改背景颜色,则应将UICollectionViewCell子类化并覆盖highlighted属性。

class DurationSelectionCollectionViewCell: UICollectionViewCell {
    override var highlighted: Bool {
        didSet {
            contentView.backgroundColor = highlighted ? .grayColor() : nil
        }
    }
}