我想将从gallery中选择的图像显示在CollectionView中的ImageView中。我该怎么做呢?? 在普通ImageView中显示selectedImage工作正常。
以下是我的代码:
var selectedImage = UIImage ()
@IBAction func selectPics(_ sender: Any)
{
if self.picsCollectionView.isHidden == true
{
self.picsCollectionView.isHidden = false
self.imageView.isHidden = true
}
self.picker.allowsEditing = true
self.picker.sourceType = .photoLibrary
present(self.picker, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info:[String: Any])
{
if let image = info[UIImagePickerControllerEditedImage] as? UIImage
{
selectedImage = image
}
else if let image = info[UIImagePickerControllerOriginalImage] as? UIImage
{
selectedImage = image
}
else
{
print("Something went wrong")
}
self.dismiss(animated: true, completion: nil)
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
return 1
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath as IndexPath) as! UploadCollectionViewCell
cell.cellImgView.image = selectedImage
return cell
}
答案 0 :(得分:0)
找到答案。需要添加一行。
以下是解决方案:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info:[String: Any])
{
if let image = info[UIImagePickerControllerEditedImage] as? UIImage
{
selectedImage = image
self.picsCollectionView.reloadData()
}
else if let image = info[UIImagePickerControllerOriginalImage] as? UIImage
{
selectedImage = image
self.picsCollectionView.reloadData()
}
else
{
print("Something went wrong")
}
self.dismiss(animated: true, completion: nil)
}