Изображение в UICollectionView не отображает изменения - PullRequest
0 голосов
/ 27 октября 2018

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

У меня есть класс UICollectionView с функцией:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! Shop1CollectionViewCell

    cell.clickedOn()
   collectionView.reloadItems(at: [indexPath])
}

У меня есть класс для ячеек:

class Shop1CollectionViewCell: UICollectionViewCell {

@IBOutlet weak var Label: UIView!

@IBOutlet weak var background: UIImageView!

func clickedOn(){
    background.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
   }

}

Могу ли я что-нибудь сделать, чтобы обновить содержимое ячейки.Кажется, что он каким-то образом заблокирован, чтобы его нельзя было изменить, или постоянно сбрасывает изображения.

1 Ответ

0 голосов
/ 27 октября 2018

Замените это

let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! Shop1CollectionViewCell

на

let cell = collectionView.cellForItem(at: indexPath) as! Shop1CollectionViewCell

Поскольку dequeueReusableCell возвращает другую ячейку, а не ту, на которую вы нажали, вы также можете сохранить это изменение в этой ячейке, чтобы оно не быловыписанный по другому индексу

...