У меня есть переменная selectedIndexPath
, которая получает indexPath
, выбранную из предыдущего контроллера просмотра. Я получаю необходимые backgroundColor
для cell
в collection view
текущего контроллера представления. Но когда я выбираю другую ячейку в представлении коллекции, выбранная ячейка предыдущего контроллера представления остается той же самой без отмены выбора. Итак, теперь у меня есть две ячейки с цветом фона. Ниже мой код
var selectedIndexPath = IndexPath()
override func viewDidLoad() {
super.viewDidLoad()
self.collectionView.allowsMultipleSelection = false
self.collectionView.allowsSelection = true
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! TestCollectionViewCell
if (indexPath == selectedIndexPath)
{
cell.backgroundColor = UIColor.white
}
else
{
cell.backgroundColor = UIColor.clear
}
collectionView.allowsMultipleSelection = false
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
{
let cell = collectionView.cellForItem(at: indexPath)
cell?.backgroundColor = UIColor.white
collectionView.allowsMultipleSelection = false
}
func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath)
{
let cell = collectionView.cellForItem(at: indexPath)
cell?.backgroundColor = UIColor.clear
collectionView.allowsMultipleSelection = false
}
Как мне deselect
ячейка в cellForItemAt
, когда я select
новая ячейка в didSelectItemAt
. Заранее спасибо.