我使用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:方法 集合视图并传递与之对应的重用标识符 你想要的细胞类型。该方法始终返回有效的单元格 对象
我不能每次都在此功能中添加滑动手势,因为会堆叠多个手势。我只需要将滑动手势添加到新创建的单元格中。
答案 0 :(得分:0)
我会在自定义UICollectionViewCell的init方法中添加手势识别器,在这种情况下可能是UserCollectionViewCell。
然后,您可以实现自定义委托协议,并为视图控制器分配集合视图作为UserCollectionViewCell的委托。
或者您可以使用NSNotificationCenter通过视图控制器处理与collectionview单元格之间的方法。