2016-08-03 4 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ファイル(または最初はセルクラス)の配置されたサブビューとして直接追加することができるため、再利用されます。

関連する問題