我有一个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;
}
}
答案 0 :(得分:0)
UICollectionView
上的页眉和页脚视图仅与部分相关。
由于标签应该用于识别图像(模型),因此您应该在内部使用标签和图像视图构建UICollectionViewCell
作为子视图。最简单的方法是在故事板中进行,在集合视图中使用原型单元格。