【问题标题】:- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath not called- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath 未调用
【发布时间】: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 或基本上任何数字,它被调用了

标签: iphone ios ipad uicollectionview


【解决方案1】:

如果[[AHImageDataSource sharedDataSource] count] 正在返回nilcellForItemAtIndexPath 将不会被调用。所以请确保[[AHImageDataSource sharedDataSource] count] 有一定的价值。

我无法下载您的示例项目,所以帮不上什么忙。 :(

【讨论】:

    【解决方案2】:

    您是否设置了委托?..

    确保方法名称正确,否则您遗漏了某些内容。

    【讨论】:

    • 是的..我做了,如果你愿意,你可以查看示例项目
    【解决方案3】:

    PintCollectionViewLayout.m 文件未包含在目标构建阶段的编译源中。添加它,为我解决了问题。

    【讨论】:

    • 是的,这检查出来了。将 PintCollectionViewLayout.m 添加到编译源后,一切正常。如果您按原样运行应用程序,它会记录“Interface Builder 文件中的未知类 PintCollectionViewLayout”。当您将文件添加到编译源时,它就会消失
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多