2017-02-19 7 views
0

テーブルビューを作成したいと思います。1つの配列からデータを取り込み、複数のセクションを持つテーブルビューを作成する

マイデータがアレイ

var myDataArray = [DataEntry]() 

内部DataEntry型のようなプロトコルである。

protocol DataEntry: class { 

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

私のデータアレイのためのようなある:

IDX = 0:category = "Section0"/title = "Row0"

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

IDX = 2:種類= "Section0" /タイトル= "行2"

IDX = 3:カテゴリ= "セクション1" /タイトル= "行0"

IDX = 4:カテゴリ= "1節" /タイトル= "行1"

IDX = 5:カテゴリ= "2節" /タイトル= "行0"

IDX = 6:カテゴリ= "2節" /タイトル= "行1"

tableViewにどのようにデータを設定するのですか? ROMのこのdataArray? (もちろん、セクションと行は配列の内容に応じて調べる必要があります)

答えて

1

単一の配列からセクションと行を挿入することはお勧めできません。あなたはすでに過度に複雑で安定していないことに気付いています。

あなたの配列が常に各セクション(セクション1は常に3要素、セクション2は常に2など)に同じ量の行がある場合のみ可能です。このように、セクションが開始するオフセット(セクション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

関連する問題