gpt4 book ai didi

ios - 添加数据并在关闭 ImagePicker 后重新加载 CollectionView - Swift - iOS

转载 作者:行者123 更新时间:2023-11-28 16:05:51 26 4
gpt4 key购买 nike

在我的应用中,用户可以使用图像选择器选择图像。在他选择之后,我想用新图像更新我的 collectionview(或 tableview)。但是即使调用了重新加载函数并且新项目在我的列表中,UI 也不会刷新。

编辑以强调这一点:我使用取消关闭来简化代码,因为行为是相同的。我知道我必须调用 didFinishWith...但我想强调由解雇引起的行为。

var files = [File]() // populate my collectionview or tableview

// ... code
// ... more code

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {

self.dismiss(animated: true) {

let newFile = File(name: "test")
self.files.append(newFile)

DispatchQueue.main.async {
self.collectionView?.reloadData()
// self.tableView?.reloadData() has the same behavior
}
}
}

如果我在 collectionView-CellForItemAt 中打印...我看到列表中有我的新元素,但它没有显示在屏幕上。

我尝试了不同的东西,但对我来说没有任何效果或看起来很脏。知道如何正确执行此操作吗?

(我已经看到这个话题了:UICollectionView won't reloadData() after UIImagePickerController dismisses)

编辑更多信息:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {

return self.files.count
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ItemCell", for: indexPath) as! CollectionViewCell

cell.file = self.files[indexPath.row]
cell.filenameLabel.text = self.files[indexPath.row].name
// other customization of cell
print(cell.file.name)
return cell
}

最佳答案

您正在实现 imagePickerControllerDidCancel。如果用户选择图像,选择器不会使用 imagePickerControllerDidCancel 调用委托(delegate),而是调用 didFinishPickingMediaWithInfo

关于ios - 添加数据并在关闭 ImagePicker 后重新加载 CollectionView - Swift - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com