gpt4 book ai didi

ios - UICollectionView 委托(delegate)未被调用

转载 作者:行者123 更新时间:2023-11-29 02:09:46 25 4
gpt4 key购买 nike

我有自定义UICollectionViewController , UICollectionViewFlowLayout ,和UICollectionViewCell类。在我的布局中,我堆叠了类似于 http://skeuo.com/uicollectionview-custom-layout-tutorial 的每个部分。 .

目前,当我运行应用程序时,所有数据都可以正确显示。

我正在尝试实现didSelectItemAtIndexPath在我的 Controller 中根据点击的项目启动序列。然而,委托(delegate)方法永远不会被调用。在我的自定义单元类中,我添加了 touchesEnded确实被调用的方法,但我无法弄清楚为什么我的 View Controller 类中的委托(delegate)没有触发。

在我的UICollectionViewController下I 类已指定协议(protocol) <UICollectionViewDelegate, UICollectionViewDataSource> 。在 viewDidLoad我还指定了:

self.collectionView.delegate = self;
self.collectionView.dataSource = self;

作为旁注,但我认为这是一个相关的问题 - 在 Storyboard中我有我的原型(prototype)单元。它的类类型设置为我的自定义类,并且我设置了 ReuseIdentifier 。在我的 View Controller 中,我加载自定义单元类并使用相同的 ReuseIdentifier 。然而 StoryBoard 和 Cell 类之间存在脱节。我可以对 Storyboard原型(prototype)单元进行更改,但它们不会反射(reflect)在运行时发生的事情中。相反,我必须注释掉该行:

[self.collectionView registerClass:[NSideCollectionViewCell class] forCellWithReuseIdentifier:NSIDE_CELL_IDENTIFIER];

强制它使用我的 Storyboard单元格版本。但是当我这样做时,我的initWithFrame我的单元格类中的自定义初始化代码永远不会被调用。我不确定为什么会这样,因为 Storyboard 清楚地显示我的原型(prototype)单元具有正确的类类型。

最佳答案

回答了我自己的问题—— Storyboard中创建的项目调用 initWithCoder 而不是 initWithFrame。注释掉显式自定义单元格类注册允许 View Controller 遵循 Storyboard 中设置的内容,并且一切都按预期工作。

关于ios - UICollectionView 委托(delegate)未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29415298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com