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

Posted

技术标签:

【中文标题】UICollectionViewDelegate 没有在具有自定义 UICollectionViewCell 和 NSObject 控制器的 UICollectionView 子类上触发【英文标题】:UICollectionViewDelegate not firing on UICollectionView subclass with custom UICollectionViewCell and NSObject controller 【发布时间】:2016-01-19 16:45:28 【问题描述】:

我对@9​​87654322@ 进行了子类化,并将其委托和数据源分配给了一个 NSObject 类。我使用带有 .xib 的自定义 UICollectionViewCell 来构造集合视图的单元格。该项目可以在这里找到: https://github.com/JeffModMed/CustomUICollectionView

如您所见,数据源方法运行良好,但是当用户点击单元格时不会调用 didSelectItemAtIndexPathshouldSelectItemAtIndexPath,这让我相信 UICollectionViewDelegate 有问题。我能想到的唯一其他可能的问题区域是我使用自定义 UICollectionViewCell 类或注册其 .xib 文件的方式有问题。

注意:请不要回答建议我使用UICollectionViewController 作为替代方案:代码必须以这种方式完成才能与更大的项目合并。提前致谢。

【问题讨论】:

哇。伟大的谜题。我已经把它拆开 20 分钟了,我不明白为什么你的委托函数没有被调用。 【参考方案1】:

在 MMFilterTagCollectionViewCell.xib 中,选择单元格并启用 User Interaction Enabled 选项。

在 MMFilterTagCollectionView.m 文件中,注释掉这一行:

@synthesize delegate;

【讨论】:

你真的是我的英雄。

以上是关于UICollectionViewDelegate 没有在具有自定义 UICollectionViewCell 和 NSObject 控制器的 UICollectionView 子类上触发的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionViewDelegate 没有触发

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

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

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

UICollectionReusableView 不显示

第12月第25天 ImagePickerSheetController