取消隐藏后,UICollectionView不显示图像

时间:2017-12-05 17:23:17

标签: ios swift

我有一个UICollectionView隐藏在viewDidLoad中,然后当一个图像添加UIImagePicker委托时,集合变为“unhidden”然后重新加载,这里是代码以下

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
        self.imagesToSend.append(pickedImage)
    }

    self.imagenesCollectionView.isHidden = false
    self.imagenesCollectionView.reloadData()
    dismiss(animated: true, completion:nil)
}

问题是,当集合显示它没有显示任何图像时,我必须添加第二个图像以便图像可以显示,我希望集合在有图像时显示,并在没有图像时隐藏图像,直到现在隐藏功能它的工作正常,但不是显示一个。

2 个答案:

答案 0 :(得分:1)

尝试添加

self.imagenesCollectionView.isHidden = false
self.imagenesCollectionView.reloadData()

在解雇完成处理程序中。像

dismiss(animated: true, completion:{
    self.imagenesCollectionView.isHidden = false
    self.imagenesCollectionView.reloadData()
})

编辑1:       而不是在完成时重新加载集合视图。根据数组数据的可用性,在viewWillAppear方法中添加集合视图重新加载。

例如:

if self.imagesToSend.count > 0 { 
    self.imagenesCollectionView.isHidden = false
    self.imagenesCollectionView.reloadData()
} else {
    self.imagenesCollectionView.isHidden = true
}

答案 1 :(得分:0)

尝试使用方法setNeedsLayoutsetNeedsDisplay。它们与视图更新有关,也许您需要在collectionView或imageView本身上使用它们。