- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath 未调用
Posted
技术标签:
【中文标题】- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath 未调用【英文标题】:- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath not called 【发布时间】:2012-10-31 06:24:44 【问题描述】:我有这两个代表:
#pragma mark = UICollectionViewDataSource
- (NSInteger)collectionView:(UICollectionView*)collectionView numberOfItemsInSection:(NSInteger)section
NSLog(@"COUNT IS %d", [[AHImageDataSource sharedDataSource] count]);
return [[AHImageDataSource sharedDataSource] count];
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView
return 1;
numberOfItemsInSection 返回 12。但未调用 cellForItem。当我只是硬编码 numberOfItemsInSection 时,它实际上被调用了。知道为什么会出现这个奇怪的问题吗?
这是一个 sample project 演示问题
【问题讨论】:
无法运行您的示例项目。它总是显示一个空白屏幕。有什么遗漏吗? nope.. 它应该显示一个空白屏幕.. 但你应该在 cellForItem 中放置一个断点,看看它不会被调用 好的。知道了。 numberOfItemsInSection 中的硬编码是什么?我尝试在那里设置 15,但它仍然没有调用。 hmm..真的吗?我尝试了 4 或基本上任何数字,它被调用了 【参考方案1】:如果[[AHImageDataSource sharedDataSource] count]
正在返回nil
,cellForItemAtIndexPath
将不会被调用。所以请确保[[AHImageDataSource sharedDataSource] count]
有一定的价值。
我无法下载您的示例项目,所以帮不上什么忙。 :(
【讨论】:
【参考方案2】:您是否设置了委托?..
确保方法名称正确,否则您遗漏了某些内容。
【讨论】:
是的..我做了,如果你愿意,你可以查看示例项目【参考方案3】:PintCollectionViewLayout.m 文件未包含在目标构建阶段的编译源中。添加它,为我解决了问题。
【讨论】:
是的,这检查出来了。将 PintCollectionViewLayout.m 添加到编译源后,一切正常。如果您按原样运行应用程序,它会记录“Interface Builder 文件中的未知类 PintCollectionViewLayout”。当您将文件添加到编译源时,它就会消失以上是关于- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath 未调用的主要内容,如果未能解决你的问题,请参考以下文章
UICollectionViewCell与UIScrollView取消didSelectItemAtIndexPath