UICollectionViewCell重用

时间:2014-03-11 08:45:40

标签: ios uicollectionview uicollectionviewcell

当方法重用时,有这样的代码可以与UICollectionViewCell一起使用吗?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {

    NSString *CellId = [NSString stringWithFormat:@"CellId%d%d",indexPath.row,indexPath.section];

    if (!cell) 
    {
        cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellId] autorelease];
    }

    return cell;
}

3 个答案:

答案 0 :(得分:1)

重点是重用单元格,这就是为什么重用标识符对于所有单元格应该是相同的,至少是一个类的所有单元格(这就是为什么声明{{1}有意义的原因作为一个静态变量 - 这个方法将被调用很多)。 CellId方法返回准备好重用的单元格(如果有)。如果没有这样的单元格,您应该创建它,稍后当它不再可见时dequeueReusableCellWithReuseIdentifier:会将其添加到“可重用单元池”中并返回UICollectoinView

dequeueReusableCellWithReuseIdentifier:

答案 1 :(得分:0)

是的,collectionview有类似的方法,如下所示:

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"collectionCell";

    collectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];

    return cell;
}

答案 2 :(得分:0)

是的,有:

UICollectionReusableView *collView = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];

您可以在文档中找到相关信息: https://developer.apple.com/library/ios/documentation/uikit/reference/UICollectionView_class/Reference/Reference.html#//apple_ref/occ/instm/UICollectionView/dequeueReusableCellWithReuseIdentifier:forIndexPath