前言
今天做了一个小小的测试,记录一下,当我们使用tableview的时候,有可能逼不得已去使用动态添加控件(最好的办法控制数据源),这样会导致内存变高,性能不好的问题。。。
- 不知道思路对不对。 希望各位道友提出意见,指出错误
小思路
如果每次cell刷新都会去动态的添加删除,这样很耗性能,
so》。。。个人的小思路,有效的提升性能,把初始化的控件放到数组里面。只是单纯的移除试图,下次拿过来继续用,就只要初始化最多的数量就可以了
直接添代码
func setupView(_ model: HomeDetails) {
titleNode.text = model.title
// 移除存储器的试图
for node in self.viewDataArray {
node.removeFromSuperview()
}
/// 缓存区----如果需要初始化的试图多余数组的count。就先初始化
MLLog("前======="+"\(self.viewDataArray.count)")
let num = model.list!.count-1
let cha = model.list!.count - self.viewDataArray.count
if cha > 0 {
for _ in 0...cha-1 {
let backView = MLOpenNode()
self.viewDataArray.append(backView)
}
}
MLLog("后---------"+"\(self.viewDataArray.count)")
// 从存储器里拿出之前初始化的试图addsubview
for index in 0...num {
let backView = self.viewDataArray[index] as! MLOpenNode
self.contentView.addSubview(backView)
let detail_model = model.list![index]
backView.titleNode.text = detail_model.name
backView.countNode.text = detail_model.num
backView.snp.makeConstraints { (make) in
make.top.equalTo(44*index)
make.left.equalTo(130)
make.right.equalTo(self.contentView)
make.height.equalTo(44)
}
}
}
测试图
网友评论