UITableViewCell中嵌套的UIStackViews会降低滚动速度,降低性能。如何提高性能?

时间:2016-08-03 12:02:47

标签: ios swift uitableview uistackview

我在UIStackViews中使用嵌套UITableViewCell。但是,当我滚动时它很慢并且会极大地影响性能。有没有办法可以提高UIStackViews中嵌套UITableViewCell的效果?

这是我将我的堆栈添加到UITableViewCell

的方式
    let verticalStack = UIStackView()
    verticalStack.axis = .Vertical

    for i in 0..<json["Rows"].arrayValue.count{

        let horizontalStack = UIStackView()
        horizontalStack.axis = .Horizontal

        for j in 0..<json["Rows"][i]["Column"].arrayValue.count{
            let label = UILabel()
            label.text = "Test"
            horizontalStack.addArrangedSubview(label)
        }

        verticalStack.addArrangedSubview(horizontalStack)
    }


    cell.addSubview(verticalStack)

1 个答案:

答案 0 :(得分:3)

问题是,您在出队时分配了多个UILabel。因此,每次滚动时,都会创建新标签。 通常,您不应该在cellForRowAtIndexPath中执行具有高性能(如分配)的操作。 更好的方法是创建一次所有标签并重复使用它们。 如果您有一个静态数量的标签,您可以直接将它们作为排列的子视图添加到XIB文件中(或最初在单元类中),这样它们就可以重复使用。