我试图在集合 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;
仅当您为单元格设置了背景颜色时,才需要第二行。