如何在UICollectionView上预选单元格

时间:2013-10-11 09:01:44

标签: iphone ios objective-c uicollectionview uicollectionviewcell

我正在开展一个项目,我想从“已保存的照片”和名为“myAlbum”的相册中读取图像,并将它们列在UICollectionView上,并提供多个选择,如此

http://screencast.com/t/Y8VCgrWbH

当用户点击myAlbum相册中的myAlbum图像时,当用户点击图库中的图库图像时,每次用户点击其中一个按钮时,我会重新加载UIcollectionView数据。我还将选定的图像保存在可变数组中,如果未选中则删除。我想比较图像与选定的数组,然后显示已在

中选择的单元格
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {

当用户导航两个按钮时。

2 个答案:

答案 0 :(得分:0)

尝试保存要选择的单元格,然后调用此委托方法:

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

可以将其放在viewWillAppear中。如果已保存数据,您应该能够找出需要选择的索引。

答案 1 :(得分:0)

首先,授权多选您的集合视图:

self.collectionView.allowsMultipleSelection = YES;

之后,实现两个委托方法:

#pragma mark – UICollectionViewDelegate
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath
{
    // Update Cell Selection
    [_selectedItems addObject:[_data objectAtIndex:indexPath.item]];
}

- (void)collectionView:(UICollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath
{
    // Update Cell Selection
    [_selectedItems removeObject:[_data objectAtIndex:indexPath.item]];
}

_data是包含所有对象的数组,_selectedItems是一个NSMutableArray,用于保存当前选中的项目。

在此处修改单元格的方面:

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 

最后,有关详情,请查看here