制作 iOS Gallery - UICollectionView 可重用性

Posted

技术标签:

【中文标题】制作 iOS Gallery - UICollectionView 可重用性【英文标题】:Making iOS Gallery - UICollectionView reusability 【发布时间】:2017-07-01 19:34:22 【问题描述】:

我是 ios 开发新手,我正在使用 Swift 3。

在我的图库应用中,当用户选择一个单元格时,该单元格内的图片会显示在上面的 UIImageView 中,并且该单元格本身会变成红色边框以表明它现在已被选中。但是,当我向上或向下滚动时,一旦选定的单元格被破坏,UICollectionView 就会从可见单元格中选择另一个单元格。

我想知道如何在单元格重用时恢复它的选定状态并防止 UICollectionView 这样做。总之,我想知道如何防止单元格重用性对选择状态的影响。

对不起,我的英语不好,不是母语人士。

【问题讨论】:

您所要做的就是在数组中维护所选单元格的 indexPaths,或者使用说明该项目已被选中的键更新模型,并在您的 cellForItem 中简单地检查数组是否包含indexPath 或您的模型具有适当的密钥集。如果在 else 条件下也不显示红色边框。 【参考方案1】:

您可以拥有一组图像状态,如果它是真的那么它被选中,否则它不是并且在

  collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 

检查状态并为单元格进行所需设置的功能,或者您可以通过像这样动态更改单元格标识符来使集合视图不重用单元格

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "HomeCircularCollectionViewCell\(indexPath.row)", for: indexPath) as? HomeCircularCollectionViewCell
//setup cell
return cell
 

希望我的回答能帮到你

【讨论】:

以上是关于制作 iOS Gallery - UICollectionView 可重用性的主要内容,如果未能解决你的问题,请参考以下文章

Android攻城狮Gallery和ImageSwitcher制作图片浏览器

如何制作前端 Gallery.view 代码点火器

Android App中使用Gallery制作幻灯片播放效果

android:使用gallery和imageSwitch制作可左右循环滑动的图片浏览器

image_gallery_saver ios获取下载路径

获取 iOS Photo Gallery 中包含人脸的所有照片的数组