我正在尝试使用补充视图实现 UICollectionView。我使用一个 Nib 文件来创建我的补充视图。这是布局中添加supplementaryView的方法:
NSMutableArray *attributesInRect = [[super layoutAttributesForElementsInRect:rect] mutableCopy];
NSLog(@"%@", attributesInRect);
if ([self.collectionView numberOfItemsInSection:0] > 1 && !self.selectedItem)
{
if ([self.musicList count] > 0)
{
UICollectionViewLayoutAttributes *musicViewAttributes = [self layoutAttributesForSupplementaryViewOfKind:@"MusicView" atIndexPath:[NSIndexPath indexPathForRow:1 inSection:0]];
musicViewAttributes.size = CGSizeMake(CGRectGetWidth([[UIScreen mainScreen] bounds]), 150);
musicViewAttributes.center = CGPointMake(musicViewAttributes.size.width/2, musicViewAttributes.size.height/2);
musicViewAttributes.zIndex = 0;
[attributesInRect addObject:musicViewAttributes];
}
}
return attributesInRect;
这里不用注意条件,只在属性数组(attributesInRect)上。当我这样做时,我的补充将正确添加到 CollectionView。
我的问题是检索添加的补充视图。在 NSLog 上,我的补充视图似乎没有在数组中列出。在这种情况下,我无法在添加新之前检查它的存在。
我真的不明白为什么文档指定:
返回值 UICollectionViewLayoutAttributes 对象数组,表示单元格和视图的布局信息。默认实现返回 nil。
据此,我的补充视图应该在那个数组中。
有什么想法吗?