У меня есть несколько UICollectionViewCells
. Когда пользователь нажимает на определенную ячейку, я хочу, чтобы мое приложение изменило фоновое изображение касательной ячейки.Как изменить фоновое изображение используемого UICollectionViewCell?
Мой подход заключается в том, чтобы сосредоточиться на методе didSelectItemAtIndexPath
. Когда ячейка коснется, этот метод будет вызван.
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
var cell: UICollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier("cellIdentifier", forIndexPath: indexPath) as! UICollectionViewCell
cell.backgroundView = UIImageView(image: UIImage(named: "myImage"))
}
Однако я не могу заставить его работать, но я не знаю, почему. Вероятно, проблема связана с indexPath
, которая не возвращает правильное значение ячейки. Я попытался использовать indexPath.row
, и это действительно возвращает номер ячейки Int
.
Кроме того, я также создаю новый UICollectionViewCell
с var
, но эта ячейка уже существует.
Почему эта ячейка не обновляет фоновое изображение? Как изменить фоновое изображение UICollectionViewCell
, которое было затронуто пользователем?
Не могли бы вы использовать 'cellForItemAtIndexPath', чтобы получить ячейку, а не переопределить другую? –
'cellForItemAtIndexPath' - это метод, используемый для размещения ячеек внутри' UICollectionView'. Он не вызывается, когда вы выбираете ячейку. – Cesare
Извините, я не понял. Используйте метод cellForItemAtIndexPath как метод для получения ячейки. Не совсем уверен в быстром синтаксисе, но 'collectionView.cellForItemAtIndexPath (indexPath)'. –