UICollectionViewDelegate 没有触发

Posted

技术标签:

【中文标题】UICollectionViewDelegate 没有触发【英文标题】:UICollectionViewDelegate not firing 【发布时间】:2013-12-08 23:18:23 【问题描述】:

我创建了一个 UICollectionView 并手动实现了数据源和委托协议,将它们分配给视图上的数据源和委托属性,并提供了自定义流布局实现 - 但我似乎无法获得

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

委托开火。

我有一个使用 UICollectionViewController 的示例项目……但就我而言,我真的不能,也不想创建视图控制器或将其推送到堆栈上。我已经正确绘制了项目。我已经自定义了单元格。我已经扩展了流程布局并对其进行了自定义,因此网格是正确的 - 但点击任何单元格都无法触发委托选择方法。

只是想知道我是否还缺少其他明显的东西。

【问题讨论】:

【参考方案1】:

您是否以编程方式分配委托和数据源?

[collectionView setDelegate:self];
[collectionView setDataSource:self];
//or.... (i dont find this method safe or consistent
collectionView.delegate = self;
collectionView.dataSource = self;

编辑:您可能还想检查您是否为代表引用了正确的视图。如果将集合视图插入 UIView,并且在视图控制器上有委托方法,请确保引用正确的对象。如果你有触摸事件,它们也可能是blocking that call。

【讨论】:

以上是关于UICollectionViewDelegate 没有触发的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionViewDelegate 没有触发

在 UICollectionViewDelegate#collectionView:didSelectItemAtIndexPath 中调用 UICollectionView#reloadData:隐

UICollectionView - UICollectionViewDelegate - 如何实现与 canEditRowAtIndexPath 等效?

UICollectionViewDelegate 没有在具有自定义 UICollectionViewCell 和 NSObject 控制器的 UICollectionView 子类上触发

UICollectionReusableView 不显示

第12月第25天 ImagePickerSheetController