我试图在集合 View 中隐藏 UICollectionViewCell。虽然我做的时候很成功

cell.hidden = YES; //or cell.alpha = 0.0;

但滚动后,单元格再次出现。我还尝试了以下方法:
UICollectionViewLayoutAttributes *layoutAttr = <get the layout attribute>//I'm succesfull here
layout.hidden = YES;
[cell applyLayoutAttributes:layoutAttr];

我认为这可能是因为我正在使用 dequeReusable.. 方法,因此正在重新使用单元格,但是
我也尝试在 collectionView:cellForItemAtIndexPath: 方法中隐藏单元格但无济于事。在这里它甚至似乎不起作用。

为什么这不起作用?如何隐藏 UICollectionViewCell

编辑:包括 collectionView:cellForItemAtIndexPath: 的实现:
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{

    static NSString *identifier = @"Cell";

    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
    cell.layer.cornerRadius  = 12.0f;
    cell.backgroundColor = [UIColor colorWithRed:0.830 green:0.899 blue:1.000 alpha:1.000];

    cell.selectedBackgroundView = [[UIView alloc]initWithFrame:cell.frame];
    cell.selectedBackgroundView.backgroundColor = [UIColor lightTextColor];;
    cell.layer.borderColor = [UIColor blackColor].CGColor;
    cell.layer.borderWidth = 2.0f;
    cell.hidden = YES;
    UILabel *lbl = (UILabel *)[cell viewWithTag:10];
    NSArray *interArray = numberArray[indexPath.section];
    [lbl setText:[interArray[indexPath.row] stringValue]];

    return cell;



}

这应该隐藏所有单元格吗?但是,不,这不会发生。

最佳答案

由于隐藏单元格本身似乎不起作用,您可以向单元格添加一个与集合 View 背景颜色相同颜色的 subview ,或者您可以隐藏单元格的内容 View ,这确实有效:

cell.contentView.hidden = YES;
cell.backgroundColor = self.collectionView.backgroundColor;

仅当您为单元格设置了背景颜色时,才需要第二行。

10-08 05:24
查看更多