以编程方式重叠问题创建UICollectionReusableView

时间:2015-07-03 10:05:49

标签: uicollectionview uicollectionreusableview

似乎-addSubview两次将UILabel添加到UICollectionReusableView

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
    if ([kind isEqualToString:UICollectionElementKindSectionHeader]) {

        UICollectionReusableView *reusableview = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:@"HeaderView" forIndexPath:indexPath];

        if (reusableview==nil) {
            reusableview=[[UICollectionReusableView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
        }

        UILabel *label=[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
        label.text=[NSString stringWithFormat:@"Recipe Group #%i", indexPath.section + 1];
        [reusableview addSubview:label];
        return reusableview;
    }
    return nil;
}

此代码不起作用:

if (reusableview==nil) {
   reusableview=[[UICollectionReusableView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
}

所以可重复使用的视图永远不会出现。

1 个答案:

答案 0 :(得分:0)

如果要自定义UICollectionReusableView,则需要以与UICollectionViewCell相同的方式对其进行子类化。此外,每次重复使用reusableview时,你基本上都会添加一个标签(滚动或reloadData为ex)。

我刚才发了一篇帖子:UICollectionView adding image to a cell

为您的可重复使用的视图做同样的事情,让我知道它是否解决了您的问题。