いつもお世話になっております。
前提・実現したいこと
掲題のとおりですが、セルが非表示となっているときにそのセルの高さを0にしたいです。
=>そのセルの高さの分を上に詰めたい。
発生している問題・エラーメッセージ
非表示のセルの高さ分で上に詰められませんでした。(というかセルが全て表示されなかった)
該当のソースコード
Swift
1func tableView(_ tableView: UITableView, cellForRowAt inedxPath: IndexPath) -> UITableViewCell { 2 let cell = tableView.dequeueReusableCell(withIdentifier: "customCell", for: indexPath) 3 if let customCell = cell as? CustomCell { 4 // セルの非表示設定 5 // boolListはセルの表示を設定するためのBoolの配列です。 6 // セル数もboolList分用意しました。 7 customCell.isHidden = boolList[indexPath.row] 8 } 9 return cell 10} 11 12func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 13 let cell = tableView.cellForRow(at: indexPath) 14 if cell == nil { 15 // セルが非表示ならcellForRow(at:)はnilを返すとのことなので 16 // 非表示のときは高さ0を返す想定です 17 return 0 // ★ 18 } 19 return UItableView.automaticDimension 20}
試したこと
上記のコードを動かしたところセルが全て非表示になっていました。
ブレークを設定して確認すると、tableView(_, heightForRowAt)が全て★の0を返す行で実行されていましたので、実際には全てのセルの高さが0になっていたみたいでした。
補足情報(FW/ツールのバージョンなど)
Xcode 10.0 beta 4
Seift4.2
tableViewの基本的なことが分かっていないだけなのかもしれませんが、ご教示いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/17 02:50
2018/08/17 03:02
2018/08/17 04:41 編集
2018/08/17 05:19