gpt4 book ai didi

ios - 如何在 Swift 中复制/复制自定义 collectionview 单元格?

转载 作者:搜寻专家 更新时间:2023-11-01 06:12:15 24 4
gpt4 key购买 nike

我想将一个自定义 collectionview 单元格从一个 viewcontroller 复制到另一个,问题是一旦我点击它,collectionview 单元格就会消失,因为 - 显然 - 将它作为 subview 添加到第二个 viewcontroller 中。

这里的大部分方法我都试过了Create a copy of a UIView in Swift

关于存档的一个返回 nil。

其他关于原型(prototype)和结构,它不返回 View 的新地址。

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
{
struct ObjectToCopied {
var objToBeRetrieved: UIView? = nil

init(objToSaved : UIView?) {
objToBeRetrieved = objToSaved
}
}
let pickedView : UIView? = collectionView.cellForItem(at: indexPath)
let tempObj = ObjectToCopied(objToSaved: pickedView)
let copiedObj = tempObj
let copiedView = copiedObj.objToBeRetrieved as? UIView
// here the copiedview's address is THE SAME as tempObj's ObjToBeRetrieved.
}

自定义 CollectionView 单元格图像示例:

Custom CollectionView cell image example

最佳答案

不要复制 UIView 对象!

你的模型不好。您必须将数据 - 信息直接存储在细胞外的某个地方。

您必须使用 indexPath 调用您的“数据库”来检索信息。没有了!

关于你的问题。此对象不会复制您的对象。

struct ObjectToCopied {
var objToBeRetrieved: UIView? = nil

init(objToSaved : UIView?) {
objToBeRetrieved = objToSaved
}
}

ObjectToCopied 是一个值类型。但是 UIView 是一个引用类型。因此,objToBeRetrieved 包含与 pickedView 相同的地址。解决方案?使用 objToBeRetrieved = objToSaved.copy()。但是,请真的不要这样做。那真的很糟糕。此外,我认为这会破坏某些东西。使用更好的应用程序模型——第一个建议。

关于ios - 如何在 Swift 中复制/复制自定义 collectionview 单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53452925/

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