2017-02-19 6 views
0

tableView를 채우고 싶습니다.단일 Array-data 및 다중 섹션에서 tableView 채우기

내 데이터는 배열 내부

var myDataArray = [DataEntry]() 

DataEntry 형은 프로토콜 등이다

IDX :

protocol DataEntry: class { 

    var idx: Int { get set } 
    var category: String { get set } 
    var title: String { get set } 
} 

내 데이터 배열 순서는 그대로 = 0 : category = "Section0"/ title = "Row0"

idx = 1 : category = "Section0"/ title = "ROW1"

IDX = 2 : 종류 = "Section0"/ TITLE = "행 2"

IDX = 3 : 종류 = "횡단면 1"/ TITLE = "Row0"

IDX = 4 : 장르 = "횡단면 1"/ TITLE = "ROW1"

IDX = 5 : 종류 = "2 장"/ TITLE = "Row0"

IDX = 6 : 종류 = "2 장"/ TITLE = "ROW1"

tableView를 채우려면 어떻게해야합니까? rom이 dataArray? (물론 섹션과 행은 배열의 내용에 따라 달라야합니다.)

답변

1

단일 배열의 섹션과 행을 채우는 것은 좋은 방법이 아닙니다. 당신은 이미 지나치게 복잡하고 전혀 안정적이지 않은 것으로 나타났습니다.

배열이 항상 각 섹션 (섹션 1은 항상 3 요소, 섹션 2는 항상 2 등)에 동일한 양의 행이있는 경우에만 가능합니다. 이와 같이 섹션이 시작되는 오프셋 (offset)을 항상 알 수 있습니다 (섹션 0은 0, 섹션 1은 3 등). 이 사건의 경우에만 경우

, 당신은 너무

let offsets = [0,3,5] 
let dataEntry = myDataArray[offsets[indexPath.section]+indexPath.row] 

처럼 할 수 그러나 나는 스트레스를 할 수없는이 충분히 : 이것은 결코 좋은 방법이며 피해야한다 전부.

+0

감사합니다. 불행히도 내 배열 항상 당신이 그것을 설명하는 형태로되지 않습니다. 따라서 다른 해결책을 찾아야합니다. 좋은 연습이란 무엇입니까? 'dequeueReusableCell'과'indexPath.row' 및'indexPath.section'을 사용하여 tableView-cells을 만들기 위해 내 데이터를 가져와야하는 형태는 무엇입니까? 어떤 도움을 주셔서 감사합니다! – iKK