Как мы можем перезагрузить представление заголовка в нашем представлении коллекции - PullRequest
0 голосов
/ 26 ноября 2018

Я искал способ перезагрузить заголовок представления моей коллекции.Таким образом, у меня есть заголовок представления коллекции и CollectionViewCell, который содержит только изображение.Теперь, когда ячейка нажата, я хотел бы отобразить изображение в представлении заголовка без вызова collectionView.reloadData ().Вот как выглядит мой метод didSelectItemAt & didDeselectItemAt. * ​​1001 *

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    selectedImage = images[indexPath.item]
    let imageCell = collectionView.cellForItem(at: indexPath) as! CollectionCell
    imageCell.photoBackgroundView.backgroundColor = .red

    collectionView.reloadData()
}

override func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
    let imageCell = collectionView.cellForItem(at: indexPath) as! ImagePickerCell
    imageCell.photoBackgroundView.backgroundColor = .black
}

Так что, когда я выбираю ячейку, вид становится красным, а когда я отменяю выбор, вид становится черным.Это видео здесь , демонстрирующее поведение без перезагрузки collectionView.Теперь я хотел бы перезагрузить представление заголовка.

Если я использую collectionView.reloadData (), это результат . Как я могу перезагрузить заголовок илиcollectionView, где представление заголовка отображает выбранное изображение ячейки и становится красным.

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Ну, я пытаюсь понять, почему иногда вы приводите ячейку в CollectionCell, а иногда в ImagePickerCell, в любом случае попробуйте изменить ваши функции в этих

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let cell = collectionView.cellForItem(at: indexPath) as! CollectionCell
    cell?.photoBackgroundView.backgroundColor = .red
}

func collectionView(_ collectionView: UICollectionView, didDeselectItemAt indexPath: IndexPath) {
    let cell = collectionView.cellForItem(at: indexPath) as! CollectionCell
    cell?.photoBackgroundView.backgroundColor = .black
}
0 голосов
/ 26 ноября 2018

Вы можете попробовать как глобальный экземпляр для этого.Как

class YourClass: UIViewController {

 /// Profile imageView
    var profileImageview = UIImageView()

}

В CollectionView cellforItem назначьте просмотр изображения.Как и

let imageCell = collectionView.cellForItem(at: indexPath) as! CollectionCell
profileImageview = imageCell.imageView

Затем при каждом выборе collectionViewCell

Вы можете вызвать функцию для изменения изображения imageView.Как

func updateImage() {
  profileImageview.image = UIImage()

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...