UICollectionView layoutAttributesForElementsInRect不返回reusableViews

时间:2012-11-21 15:16:52

标签: layout view ios6 uicollectionview supplementary

我正在尝试使用supplementViews实现UICollectionView。 我使用Nib文件来创建我的补充视图。这是布局中添加supplementView的方法:

    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上,它接缝我的supplementView没有在数组中列出。在这种情况下,我无法在添加新的之前检查它的存在。

我真的不明白为什么文档指定:

  

返回值   一组UICollectionViewLayoutAttributes对象,表示单元格和视图的布局信息。默认实现返回nil。

根据我的补充视图应该在该数组中。

有任何想法吗?

0 个答案:

没有答案