我有一个UICollectionView,我使用dequeueReusableCellWithReuseIdentifier来重用单元格。第二次调用cellForItemAtIndexPath时,会返回一个隐藏的单元格 - 因此单元格不会显示在我的UICollectionView中。我尝试将单元格硬编码为不隐藏 - 但这不起作用,隐藏的属性保持在"是"甚至在设置为" NO"之后。是什么导致细胞被隐藏 - 这怎么能被否定?
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
SFReceiptCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
[cell setHidden:NO];
NSLog(@"cell.hidden = %d", cell.hidden);
...
这显示在日志中:
cell.hidden = 1
没有代码在哪里被隐藏的单元格 - 所以我不知道可能导致这种情况发生的原因。
答案 0 :(得分:1)
刚刚遇到同样的问题。我花了3个小时进行调试并尝试设置.hidden = false
但没有成功。
结果是添加:
override func applyLayoutAttributes(layoutAttributes:UICollectionViewLayoutAttributes)
{
super.applyLayoutAttributes(layoutAttributes)
self.updateSubviews()
}
我在项目中使用的UICollectionViewCell
子类解决了这个问题。
我正在使用updateSubviews()
来更新帧,因为我不想在单元格中使用自动布局。