我们如何在集合视图中重新加载标题视图

时间:2018-11-26 05:39:01

标签: swift uicollectionview

我一直在寻找一种重新加载收藏视图标题的方法。因此,我有一个收集视图标头和一个仅包含图像的CollectionViewCell。现在,当按下单元格时,我想在标题视图中显示图像而无需调用collectionView.reloadData()。这就是我的didSelectItemAt和didDeselectItemAt方法的样子。

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
}

因此,当我选择一个单元格时,视图将变为红色,而当取消选择它时,视图将变为黑色。 video here展示了在不重新加载collectionView的情况下的行为。现在是我想重新加载标题视图的地方了。

如果我确实使用collectionView.reloadData(),这就是outcome.,我将如何重新加载标头或collectionView,在标头视图中显示所选单元格图像并变为红色。

2 个答案:

答案 0 :(得分:1)

您可以尝试使用全局实例。像

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()

}

答案 1 :(得分:0)

好吧,我试图理解为什么有时您在CollectionCell中投射单元格,有时在ImagePickerCell中投射单元格,无论如何尝试更改这些功能

nn.MSELoss()