我一直在寻找一种重新加载收藏视图标题的方法。因此,我有一个收集视图标头和一个仅包含图像的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,在标头视图中显示所选单元格图像并变为红色。
答案 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()