Проблема с анимацией выбранной ячейки представления коллекции при нажатии - PullRequest
0 голосов
/ 02 декабря 2019

Это простой вопрос, и я не могу решить эту проблему.

У меня есть список ячеек в представлении коллекции, и когда я нажимаю на него, я просто хочу, чтобы ячейка подсвечивалась немногозатем исчезает только анимация для нажатия.

Я пытался изменить фон в своем didSelectItemAt, но, похоже, он подсвечивал не ту ячейку.

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let cell = collectionView.cellForItem(at: indexPath)
        UIView.animate(withDuration: 0.5, animations: {
            cell?.backgroundColor = .lightGray
        }, completion: {
            (value: Bool) in
            cell?.backgroundColor = .white
        })
}

Также пробовал несколько вещей, которые я нашел изстек, и он не работал.

Ответы [ 2 ]

0 голосов
/ 02 декабря 2019
  • Вы можете показать, что с помощью свойства alpha, как предлагается

    UIView.animate(withDuration: 0.5, animations: {
        cell?.backgroundColor = .darkGray
        cell.alpha = 0.7
    }, completion: {
        (value: Bool) in
        cell.alpha = 1
    })
    

    }

0 голосов
/ 02 декабря 2019

BackgroundColor не анимируется ни для одной ячейки. Одно из решений - установить цвет backgroundView и анимировать его альфа. Вы также можете вставить свои собственные представления в качестве фона и анимировать их альфы в противоположных направлениях, чтобы создать изменение.

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt 
indexPath: IndexPath) {
let cell = collectionView.cellForItem(at: indexPath)
    UIView.animate(withDuration: 0.5, animations: {
        cell?.backgroundColor = UIColor.lightGray.cgColor
    }, completion: {
        (value: Bool) in
        cell?.layer.backgroundColor = UIColor.white.cgColor
    })
}
...