如何检测首次创建UICollectionViewCell的时间?

时间:2014-08-08 01:27:23

标签: ios cocoa-touch uicollectionview

我使用UICollectionView来显示网格中的单元格。我想为每个单元格添加一个滑动手势,以触发删除单元格的快捷方式。如果我使用的是UITableView,那就简单了。在tableView:cellForRowAtIndexPath:中,我会将一个单元格出列。当且仅当单元格为零时,我才会将滑动手势附加到新创建的单元格。使用UICollectionView时,这个过程并不容易。

- (UICollectionViewCell*)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UserCollectionViewCell* cell = [self.avatarCollectionView 
        dequeueReusableCellWithReuseIdentifier:AVATAR_CELL_ID 
        forIndexPath:indexPath
    ];
    cell.user = [self.users objectAtIndex:indexPath.row];
    return cell;
} 

无法检测是否首次创建了单元格,因为documentation表示:

  

您对此方法的实施负责创建,   配置并返回给定项目的相应单元格。   你这样做是通过调用   dequeueReusableCellWithReuseIdentifier:forIndexPath:方法   集合视图并传递与之对应的重用标识符   你想要的细胞类型。该方法始终返回有效的单元格   对象

我不能每次都在此功能中添加滑动手势,因为会堆叠多个手势。我只需要将滑动手势添加到新创建的单元格中。

enter image description here

1 个答案:

答案 0 :(得分:0)

我会在自定义UICollectionViewCell的init方法中添加手势识别器,在这种情况下可能是UserCollectionViewCell。

然后,您可以实现自定义委托协议,并为视图控制器分配集合视图作为UserCollectionViewCell的委托。

或者您可以使用NSNotificationCenter通过视图控制器处理与collectionview单元格之间的方法。