无法选择重用的UICollectionViewCell

时间:2015-05-25 09:10:37

标签: objective-c uicollectionview

当我尝试从上到下点击所有collectionViewCell时,无法点击可能重复使用的下部单元格。
我想这些细胞会在选择条件下重复使用。

我该如何解决?

ViewController.m

- (void)viewDidLoad
{
    flowLayout = [[UICollectionViewFlowLayout alloc]init];
    flowLayout.itemSize = CGSizeMake(106, 106);

    collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 0, 320, 568) collectionViewLayout:flowLayout];
    collectionView.allowsMultipleSelection = YES;
    [collectionView registerClass:[CustomCell class] forCellWithReuseIdentifier:kCellIdentifier];
    collectionView.delegate = self;
    collectionView.dataSource = self;
    [self.view addSubview:collectionView];
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return 30;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    CustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:kCellIdentifier forIndexPath:indexPath];
    return cell;
}

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"%@", indexPath);
}

CustomCell.m

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self)
    {
        //
    }
}

1 个答案:

答案 0 :(得分:0)

-collectionView:didSelectItemAtIndexPath:中,调用[self.collectionView deselectItemAtIndexPath:indexPath animated:YES];取消选择单元格,以便在重复使用时,不会传递选择以重复使用。

另一种方法是让模型跟踪是否选中它,以便您可以在selected中设置-collectionView:cellForItemAtIndexPath:状态。