我有一个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)
}
问题是,当集合显示它没有显示任何图像时,我必须添加第二个图像以便图像可以显示,我希望集合在有图像时显示,并在没有图像时隐藏图像,直到现在隐藏功能它的工作正常,但不是显示一个。
答案 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)
尝试使用方法setNeedsLayout
或setNeedsDisplay
。它们与视图更新有关,也许您需要在collectionView或imageView本身上使用它们。