美文网首页
cell动态添加删除控件优化

cell动态添加删除控件优化

作者: MMD_ | 来源:发表于2018-05-18 16:20 被阅读24次

前言

今天做了一个小小的测试,记录一下,当我们使用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)
            }
        }
    }
测试图

相关文章

网友评论

      本文标题:cell动态添加删除控件优化

      本文链接:https://www.haomeiwen.com/subject/awigdftx.html