2016-08-03 7 views
3

UITableViewCell에 중첩 된 UIStackViews을 사용하고 있습니다. 그러나 스크롤하면 매우 느리며 성능에 크게 영향을줍니다. 어떤 식 으로든 내 UIStackViews의 중첩 된 성능을 향상시킬 수 있습니까? UITableViewCell?UITableViewCell의 중첩 된 UIStackViews는 스크롤 속도를 늦추고 성능을 저하시킵니다. 성능을 어떻게 향상시킬 수 있습니까?

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을 할당하는 것이있다 :

이것은 내 UITableViewCell 내 스택을 추가하는 방법이다. 따라서 스크롤 할 때마다 새 레이블이 만들어집니다. 일반적으로 cellForRowAtIndexPath에서 고성능과 같은 작업 (할당 등)을해서는 안됩니다. 더 좋은 방법은 모든 레이블을 한 번 만들고 다시 사용하는 것입니다. 정적 라벨 번호가있는 경우 XIB 파일 (또는 처음에는 셀 클래스)의 정렬 된 하위 뷰로 직접 추가 할 수 있으므로 재사용 할 수 있습니다.

관련 문제