※本記事は、旧ブログからの再掲です。

ViewControllerに複数の異なるビューを配置し、その1つにtableViewを配置したところ、思った通りに描画されなかった時の備忘録です。

tableview_header_1

上のImageViewとの間隔は10ptに設定してあるのに、それ以上の間隔で描画され、テーブルセルは5個なのでその分の高さを設定してあるのに、セル4までしか表示されていません。
セルの上に何かありそうなので、背景に色を付けてみました。

tableview_header_2

黄色い部分がセル1の上にあるためにセルが4つ分まで表示されなかったようです。
これは調べてみたらセクションヘッダらしいことが分かりました。
セクションヘッダを表示する必要はないので、下記2つのdelegateメソッドを実装することで対処できました。

– (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
– (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

またフッタについても呼ばれていたので同様に実装しました。

– (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
– (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

tableView.sectionHeaderHeight = 1.0f
tableView.sectionFooterHeight = 1.0f
に設定したので最終的には以下のように表示されるようになりました。

tableview_header_3

 


Comments are closed.