gpt4 book ai didi

ios - 初始化时将数据传递给 UITableViewCell

转载 作者:行者123 更新时间:2023-11-29 01:55:13 25 4
gpt4 key购买 nike

我有一个变量,需要从主 UITableView 传递到单元格 subview 以在初始化方法中使用。我试过这样做:

class CollectionCell : UITableViewCell {

var collectionElement : PFObject = PFObject(className:"CollectionElement")

override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)

self.collectionElementArray = (collectionElement["elementFileArray"] as? [PFObject])!

...

}

然后我以这种方式创建单元格:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

...
let cell : CollectionCell = tableView.dequeueReusableCellWithIdentifier("CollectionCell", forIndexPath: indexPath) as! CollectionCell

cell.collectionElement = collectionElements[indexPath.row]

return cell
}

该变量未在 init 方法中设置。

最佳答案

正如 ncerezo 所说,单元没有被创建,它们正在被回收,所以没有 init 函数被调用。更好的方法是在您的 collectionElement 变量上使用 didSet 并在确保它不是 nil 之后根据那里的新值进行任何 View 更新.然后,当您在 tableView(tableView: , cellForRowAtIndexPath:) 中设置单元格的属性时,单元格实际上会自行更新。

var collectionElement  : PFObject = PFObject(className:"CollectionElement") {
didSet {
// Update the cell's view elements here, rather than an init function
}
}

关于ios - 初始化时将数据传递给 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30943650/

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