我目前有一個CollectionView
,其中有1個可重複使用的單元,其中填充了ImageView
。這個細胞被用來顯示10個不同的動物10次(我提供細胞的圖片)。我在這個集合視圖上還有一個標籤。每當用戶按下一個單元格時,標籤將變爲「選定的動物名稱」。 我現在想要的是讓細胞圖像在選擇時變暗,並在未選中時恢復正常。截至目前,我知道如何通過手動將它切換成較暗的一個來更改單元格的圖像,但我不知道如何在另一個單元格上更改爲正常。 我該如何實施?我已經在底部抄我的代碼:根據CollectionView中的選擇更改ImageView
//cell configuration
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
//define the cell
let cell = collectionview.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! AnimalSelectionCell
//animals is name of array of different types of animals
cell.animalImage.image = UIImage(named: animals[indexPath.row])
cell.animalImage.restorationIdentifier = animals[indexPath.row]
return cell
}
//choosing an animal
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let currentCell = collectionview.cellForItem(at: indexPath) as! AnimalSelectionCell
let animal = currentCell.animalImage.restorationIdentifier! //gets what type of animal selected
selectionLabel.text = "\(animal) selected" //changes label
currentCell.animalImage.image = UIImage(named: animal + "Selected") //changes to darker animal image
}
這給選定的動物一個更暗的圖像,但每當我選擇另一隻動物時,我先前選擇的動物圖像仍然變暗。我該如何解決? – fphelp
另外我有一個清晰的按鈕,當我按下它時,標籤變爲「沒有選擇動物」。我應該在IBAction代碼中使用哪部分代碼,因此當我按下清除按鈕時,所有圖像都將恢復正常? – fphelp
@fphelp檢查我的答案我已經添加了一個clearSelection函數,您需要的實現爲最後的requeriment –