2017-07-01 78 views
0

我是新來的iOS開發,我使用斯威夫特3.製作的iOS畫廊 - UICollectionView重用

在我的圖片庫的應用程序時,用戶選擇上述一個UIImageView和細胞本身的小區,該小區內顯示的圖片變成紅色邊框以顯示它現在被選中。但是,當我向上或向下滾動時,只要所選單元格被銷燬,UICollectionView將從可見單元格中選擇另一個單元格。

我想知道如何在重用時恢復單元格的選定狀態,並阻止UICollectionView這樣做。總之,我想知道如何防止細胞重複使用對選擇狀態的影響。

對不起,我的英語不好,不是母語。

+1

所有你需要做的是主在數組內使用選定單元格的indexPaths,或者用一個關鍵字更新模型,說明該項目已被選中,並在'cellForItem'中檢查數組是否包含'indexPath'或者模型是否具有適當的鍵集。如果它不在else條件中顯示紅色邊框。 – Rikh

回答

0

你可以擁有像陣列狀態,如果是真的,那麼它的選擇別人它不是,並在

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 
} 

希望我的回答可以幫助你在你的問題