添加标签/按钮到UICollectionView - 页脚或不?

时间:2014-07-18 14:53:59

标签: objective-c uicollectionview

我有一个collectionView,它以单个水平布局显示图像数组。我试图在每个单元格下添加UILabel。我认为最好/最简单的方法是为每个单元格添加页脚视图/补充视图。因此,我重写了viewForSupplementaryElementOfKind。我有一系列与图像阵列相关的图像名称。所以我只希望将图像名称视为每个单元格的标签。但是,所有标签和名称在第一个单元格上都是重叠的。此外,在我滚动到最后一个图像/单元格之前,页脚视图不会进入视图,所以在滚动到结尾之前,我不会看到第一个单元格上的重叠标签。我知道问题出在我的viewForSupplementaryElementOfKind实现中,但我不确定如何纠正它。有人可以建议吗?在此先感谢!!

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
NSLog(@"viewForSupplementaryElementOfKind");

static NSString *FooterCellIdentifier = @"FooterView"; // string value identifier for cell reuse
FooterViewCell *footerView;
if (kind == UICollectionElementKindSectionFooter) {
    NSLog(@"*******Element Kind is a footer!*******");
    footerView = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionFooter
                                                                    withReuseIdentifier:FooterCellIdentifier forIndexPath:indexPath];
    for (int i = 0; i < [self.imagesArray count]; i++) {
        UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.myCollectionView.frame.origin.x/2, self.myCollectionView.frame.origin.y/2, CellWidth, 20)];
        //testLabel.text = [self.imageNames objectAtIndex:indexPath.row];
        testLabel.text = self.imageNames[i];
        [self.myCollectionView addSubview:testLabel];
    }

     return footerView;
} else {
    NSLog(@"*******Element Kind is NOT a footer!*******");
    return nil;
}

}

1 个答案:

答案 0 :(得分:0)

UICollectionView上的页眉和页脚视图仅与部分相关。

由于标签应该用于识别图像(模型),因此您应该在内部使用标签和图像视图构建UICollectionViewCell作为子视图。最简单的方法是在故事板中进行,在集合视图中使用原型单元格。

Collection view with a prototype cell