Просто поделился, как мне удалось решить:
объявить в class CollectionViewController: UICollectionViewController
var currentlySelected: Int?
var previouslySelected: IndexPath?
далее, в функции cellForItemAt,
if currentlySelected != nil && currentlySelected == indexPath.row
{
uploadPostButton.isEnabled = true
cell.layer.borderColor = UIColor.blue.cgColor
cell.layer.borderWidth = 2.0
}
else
{
cell.layer.borderColor = .none
cell.layer.borderWidth = 0
}
также в didSelectItemAt
collectionView.allowsMultipleSelection = false
if previouslySelected != nil{
if let cell = collectionView.cellForItem(at: previouslySelected!){
cell.layer.borderColor = .none
cell.layer.borderWidth = 0
}
}
currentlySelected = indexPath.row
previouslySelected = indexPath
// For reload the selected cell
self.collectionView.reloadItems(at: [indexPath])//this is to "refresh" the selection
Итак, это своего рода достижение того, чего я хотел, но я уверен, что есть более чистый / лучший способ, которым я хотел бы научиться!