无法使用 swift 在 uicollectionview 中从 firebase 中删除正确的图片
can't delete the correct picture from firebase in uicollectionview using swift
所以,我有一个集合视图,其中包含从 firebase 下载的图像。每个单元格都有一个删除按钮。我试图让用户删除图像。到目前为止,我能够删除该单元格。但是随后删除了错误的 firebase 图像,因此当重新加载 collectionview 时,它仍然显示我打算删除的图像。请帮忙
var profileImageUrl: String?
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! createProfilePicCollectionViewCell
cell.picCellPic.loadImageUsingCacheWithUrlString(urlString: imageUrlArray[indexPath.item])
profileImageUrl = imageUrlArray[indexPath.item]
cell.deleteButton?.tag = indexPath.row
cell.deleteButton?.addTarget(self, action: #selector(deleteUser(sender:)), for: UIControlEvents.touchUpInside)
return cell
}
我正在尝试使用 collectionview 单元格中的变量 'profileImageUrl' 引用正确的图像 URL,以便我可以正确删除它们。但似乎变量引用了错误的 URL。这是删除函数:
@objc func deleteUser(sender:UIButton) {
if let user = Auth.auth().currentUser {
let UID = user.uid
let storageRef = Storage.storage().reference(forURL: self.profileImageUrl!)
ref.removeValue { error, _ in
}
}
let i = sender.tag
imageUrlArray.remove(at: i)
collectionViewController.reloadData()
}
谢谢!
根据您发布的代码,您的 profileImageUrl
变量在 UIViewController
内,而不在 UICollectionViewCell
内。
因此,每次单元格出队时都要设置它。我想它总是会从加载的最后一个单元格中删除 url 处的图像。
在单元格 class 内移动 profileImageUrl
变量。
此外,您的 UIViewController
或 UICollectionViewCell
subclass 中的 deleteUser
方法?将它放在单元格 class 中可能更有意义,因为您需要获取 profileImageUrl
变量的句柄。
所以,我有一个集合视图,其中包含从 firebase 下载的图像。每个单元格都有一个删除按钮。我试图让用户删除图像。到目前为止,我能够删除该单元格。但是随后删除了错误的 firebase 图像,因此当重新加载 collectionview 时,它仍然显示我打算删除的图像。请帮忙
var profileImageUrl: String?
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath) as! createProfilePicCollectionViewCell
cell.picCellPic.loadImageUsingCacheWithUrlString(urlString: imageUrlArray[indexPath.item])
profileImageUrl = imageUrlArray[indexPath.item]
cell.deleteButton?.tag = indexPath.row
cell.deleteButton?.addTarget(self, action: #selector(deleteUser(sender:)), for: UIControlEvents.touchUpInside)
return cell
}
我正在尝试使用 collectionview 单元格中的变量 'profileImageUrl' 引用正确的图像 URL,以便我可以正确删除它们。但似乎变量引用了错误的 URL。这是删除函数:
@objc func deleteUser(sender:UIButton) {
if let user = Auth.auth().currentUser {
let UID = user.uid
let storageRef = Storage.storage().reference(forURL: self.profileImageUrl!)
ref.removeValue { error, _ in
}
}
let i = sender.tag
imageUrlArray.remove(at: i)
collectionViewController.reloadData()
}
谢谢!
根据您发布的代码,您的 profileImageUrl
变量在 UIViewController
内,而不在 UICollectionViewCell
内。
因此,每次单元格出队时都要设置它。我想它总是会从加载的最后一个单元格中删除 url 处的图像。
在单元格 class 内移动 profileImageUrl
变量。
此外,您的 UIViewController
或 UICollectionViewCell
subclass 中的 deleteUser
方法?将它放在单元格 class 中可能更有意义,因为您需要获取 profileImageUrl
变量的句柄。