2次元配列をもとにセクション付きのUITableView
を表示しているのですが、
セクションのみ増やす場合に2次元配列にappend.([])
・セクション名称の配列にappend(newSectionName)
すると、しばらくして追加した[]
が[""]
となってしまい、名称が空白のセルができてしまいます。
空白のセルが作成されることを避ける方法があるでしょうか?
swift
1// 配列 2var dataArray: [[String]] = [["A01","A02"],["B01","B02"]] 3var sectionNameArray: [String] = ["sectionA","sectionB"]
↓セクションだけ増やしたいので空の配列とセクション名を追加する
swift
1dataArray.append([]) 2sectionNameArray.append("sectionC") 3// => dataArray = [["A01","A02"],["B01","B02"],[]] 4// => sectionNameArray = ["sectionA","sectionB","sectionC"]
↓しばらくすると(タイミングが何か分からない。)、[]
が[""]
になり、numberOfRowsInSectionで""がカウントされ、空のCellができてしまう。
swift
1dataArray = [["A01","A02"],["B01","B02"],[]] 2// ↑の[]が自動的に↓の[""]になる。 3dataArray = [["A01","A02"],["B01","B02"],[""]] 4
numberOfRowsInSection
だけならば↓のように回避できるのですが、並び替えなどもするので良い解決方法はないでしょうか?
swift
1//numberOfCell 2func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 3 if dataarray[section] == [""] { 4 return 0 5 } else { 6 return dataArray[section].count 7 } 8} 9 10// 並び替えをすると、空白のセルができてしまう。 11dataArray = [["A02"],["B01","B02"],["","A01"]]
追記:問題が起こる原因と解決
配列に変更が加えられるたびにデータをCSV形式で保存していたため、CSVからデータを読み込む際に[]が[""]になったようです。
解決は、xAxisさんに回答いただいたように、CSVからのデータ読み込み時に""を取り除いたところ、問題なく動くようになりました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/04 15:12 編集