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#collectionView:didSelectItemAtIndexPath 中调用 UICollectionView#reloadData:隐
UICollectionView - UICollectionViewDelegate - 如何实现与 canEditRowAtIndexPath 等效?
UICollectionViewDelegate 没有在具有自定义 UICollectionViewCell 和 NSObject 控制器的 UICollectionView 子类上触发