2016-08-03 85 views
3

我在我的UITableViewCell中使用嵌套UIStackViews。但是,當我滾動它非常緩慢並且大大地影響性能。有什麼方法可以提高UITableViewCell中的嵌套UIStackViews的性能?UITableViewCell中嵌套的UIStackViews會減慢滾動速度,降低性能。我如何提高性能?

這是我怎麼加我的書庫我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) 
+0

如何創建單元格? 嘗試異步填充單元格 –

+0

異步填充單元格?它是如何工作的? –

+1

你可能會考慮「分析應用程序」。按住Xcode中的運行按鈕啓動分析器。選擇時間分析器,然後記錄應用程序以查看哪些代碼行較慢。 – JMFR

回答

2

的問題是,您分配多個UILabels而離隊。所以,每次滾動時,都會創建新的標籤。 通常,您不應該在cellForRowAtIndexPath中以高性能(如分配)進行操作。 更好的方法是創建一次所有標籤並重新使用它們。 如果你有一個靜態數量的標籤,你可以直接將它們作爲排列在XIB文件中的子視圖(或者最初在單元類中)添加,這樣它們將被重用。