持久化 UITableViewCell 子类属性
Posted
技术标签:
【中文标题】持久化 UITableViewCell 子类属性【英文标题】:Persist UITableViewCell subclass property 【发布时间】:2016-05-27 23:04:11 【问题描述】:我有一个 UITableViewCell
子类,其中包含一个 Bool
。这个属性应该持续存在(当单元格可见时),但是,我似乎已经设置了它,以便在调用 collectionView:cellForItemAtIndexPath:
时,该属性被重置。示例
class CellClass: UITableViewCell
var someBool: Bool = false
func doSomethingWithBool()
if someBool
thing1()
someBool = false
else
thing2()
someBool = true
class CollectionView: UICollectionView
@IBAction func buttonPressed()
// Do some things
// cellForItemAtIndexPath called again here
self.collectionView?.reloadItemsAtIndexPaths(paths)
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! CellClass
// Everything else
if collectionViewProperty
// This doesn't work right because someBool is reset to false
cell.doSomething()
return cell
我需要在init
方法中设置someBool
吗?设计这个的正确方法是什么?
【问题讨论】:
doSomething() 函数会改变 someBool 吗? 是的,它改变了 someBool 【参考方案1】:我会在您的自定义单元格中覆盖 prepareForReuse
override func prepareForReuse()
super.prepareForReuse()
someBool = false
【讨论】:
以上是关于持久化 UITableViewCell 子类属性的主要内容,如果未能解决你的问题,请参考以下文章
在 cellForRowAtIndexPath 的 UITableViewCell 的子类中显示 UIImageView