Как изменить цвет фона UIcollectionViewCell при нажатии с помощью swift? - PullRequest
0 голосов
/ 18 мая 2018
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath){
        if let cell = collectionView.cellForItem(at: indexPath) {
            cell.backgroundColor = UIColor.green
        }
}

Почему для отображения цвета фона при нажатии на ячейку требуется около 45 секунд?Есть ли другой способ сделать это?

Ответы [ 3 ]

0 голосов
/ 18 мая 2018

Вы также можете использовать это, и этим вы можете выполнить настройку со временем

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    if let cell = collectionView.cellForItem(at: indexPath)
    {
           cell.backgroundColor = .green

        DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.2 , execute:
        {
              cell.backgroundColor = .clear
        })
    }
}
0 голосов
/ 30 июля 2019

Сделайте это в вашем классе, расширяющем UICollectionViewCell:

override var isSelected: Bool {
        didSet {
            backgroundColor = isSelected ? UIColor.black : UIColor.blue
        }
    }
0 голосов
/ 18 мая 2018

Просто удалите эту строку

 self.collectionView?.reloadData()

Чтобы быть таким:

  func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        if let cell = collectionView.cellForItem(at: indexPath){
            cell.backgroundColor = .green
        }


    }

    func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
        if let cell = collectionView.cellForItem(at: indexPath){
            cell.backgroundColor = .clear
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...