Я не знаю, что не так с моим кодом. Я попытался установить для ячейки по умолчанию индекс 0, когда ячейка не выбрана, но галочка не появляется. Я был бы признателен, если бы кто-нибудь подсказал мне, как решить эту проблему.
Код: Выделить всё
func collectionView(
_ collectionView: UICollectionView,
didSelectItemAt indexPath: IndexPath
) {
switch collectionView.tag {
case 1:
guard lastSelectedIndexPath != indexPath else { return }
if let index = lastSelectedIndexPath,
let lastSelectedCell = collectionView.cellForItem(at: index) as? CollectionViewCell1 {
lastSelectedCell.isSelected = false
}
case 2:
guard lastSelectedIndexPath != indexPath else { return }
if let selectedCell = collectionView.cellForItem(at: indexPath) as? CollectionViewCell1 {
selectedCell.isSelected = true
lastSelectedIndexPath = indexPath
if let selectedImage = selectedCell.imagesView.image {
selectedPersonImage.image = selectedImage
profileImage.image = selectedImage
selectedCharacterImage = selectedImage
personModels[0].icon = selectedImage
selectedCharacterImage = personModels[0].icon
selectedImageName = getImageName(for: selectedImage)
// Save the selection to UserDefaults
userDefaults.set(
[
"section": indexPath.section,
"item": indexPath.row
],
forKey: "selectedPersonIndex"
)
}
} else {
// Handle the case where cell is nil
print("Cell is nil for indexPath: \(indexPath)")
}
case 3:
// Handle selection for collectionView with tag 3
guard lastSelectedIndexPath != indexPath else { return }
if let selectedCell = collectionView.cellForItem(at: indexPath) as? CollectionViewCell1 {
selectedCell.isSelected = true
lastSelectedIndexPath = indexPath
// Update the images and models based on the selected image
if let selectedImage = selectedCell.plantImg.image {
plantProfileImage.image = selectedImage
selectedPlantImage.image = selectedImage
selectedCharacterImage = selectedImage
plantModels[0].icon = selectedImage
selectedCharacterImage = plantModels[0].icon
let water_Type = userDefaults.string(forKey: "Water_Type")
switch water_Type {
case "plant": // return plant data
selectedImageName = getImageName(for: selectedImage)
userDefaults.set(["section": indexPath.section, "item": indexPath.row], forKey: "selectedPlantIndex")
case "animal": // return animal data
selectedImageName = getImageName(for: selectedImage)
userDefaults.set(
[
"section": indexPath.section,
"item": indexPath.row
],
forKey: "selectedAnimalIndex"
)
default:
break
}
}
} else {
// Handle the case where cell is nil
print("Cell is nil for indexPath: \(indexPath)")
}
default:
break
}
settingsTView.reloadData()
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... e-selected