首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在UICollectionViewDelegate#collectionView:didSelectItemAtIndexPath:中调用UICollectionView#reloadData隐藏所有单元格

在UICollectionViewDelegate#collectionView:didSelectItemAtIndexPath:中调用UICollectionView#reloadData隐藏所有单元格
EN

Stack Overflow用户
提问于 2013-09-24 19:57:15
回答 2查看 1.6K关注 0票数 1

我有一个UIViewController,它为didSelectItemAtIndexPath提供了以下实现

代码语言:javascript
复制
@interface

id section1Item
NSMutableArray *section2Items
NSMutableArray *section3Items

@end

@implementation

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {

    if (indexPath.section == 0) {

        ;

    } else if (indexPath.section == 1) {

        self.section1Item = [self.section2Items objectAtIndex:indexPath.row];

    } else { // indexPath.section == 2

        id newSection2Item = [self.section3Items objectAtIndex:indexPath.row];

        [self.section2Items addObject:newSection2Item];

        [self.section3Items removeObject:newSection2Item];

     }


     [collectionView reloadData];

 }

 @end

代码背后的思想是,我的collectionView有一个静态的节数,并且在第3节中的一个项目上录音会将项目移动到第2节,并且点击第2节中的项使它成为第1节中的一个项。

然而,一旦我对我的dataStructure (section1Item、section2Items和section3Items)进行了更改,并调用了reloadData,我的UICollectionView单元就会消失。这个问题的几个症状

  1. 在reloadData调用之后,我的非dataSource方法就会被召回。我尝试在我的numberOfSectionsInCollectionView和收藏品视图的实现中放置一个断点:numberOfItemsInSection,但它们没有被击中。
  2. 我尝试使用RevealApp进行调试,发现在reloadData调用之后,我所有的UICollectionViewCell的隐藏属性都被设置为"YES",尽管我的代码库中没有调用.hidden =YES的代码;
  3. 我还试图重写UICollectionViewCell#setHidden,以检测UIKit框架的任何部分(如果有的话)调用它的内容,而且也没有断点触发器。

工具详细信息:我正在iOS7模拟器上使用XCode5-DP6。

更新: My UICollectionView在第一次呈现时正确显示所有单元格。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-25 23:19:26

好吧,偷窥,所以我能解决这个问题。委托(self)是UIViewController的一个子类。在init中,我分配了self.view = viewFromStoryBoard,其中调用方传入了viewFromStoryBoard,并在故事板中设置了该调用程序。

由于我并没有真正使用子类UIViewController提供的任何工具,所以我决定切换到子类NSObject并手动保留指向UICollectionView的指针。

这解决了我的问题。然而,我对这个问题的确切性质不是百分之百的。我猜想,在某种程度上,覆盖UIViewController的视图并不是它看起来的全部。

票数 0
EN

Stack Overflow用户

发布于 2013-10-01 16:11:34

iOS 7和UICollectionView有很多错误.在我的例子中,reloadData不能正常工作,它可以延迟工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18990878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档