will display, will not?

UITableViewにフッタを付けて、表示されるタイミングであれこれしようと思い、delegateのこのメソッドを実装してみた。


- (void)tableView:(UITableView *)tableView willDisplayFooterView:(UIView *)view forSection:(NSInteger)section

 

が、一向に呼ばれる気配がない。

どうなってんだと思って調べてみると、カスタムしたフッタなりヘッダを使ってる場合は呼ばれない模様。

具体的には、これを実装していると呼ばれない。

これで用が済むのでwillDisplayなんて必要ないだろ、というappleの心遣い。


- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

 

じゃあ、実際に willDisplayFooterView:forSection: はどう使うのかというと、これを実装した上で渡されるviewを直接いじる。

UIView となってはいるものの、その実体は UITableViewHeaderFooterView だったりするので、後はどうにでもしてというスタンス。

 

なお、フッタの高さを決める以下のメソッドも必要なので忘れずに。

 

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

 

名前からそれっぽいと思ったら、実際は違ったという、うっかり的な早とちりだったわけだが

実際に willDisplayFooterView:forSection: で表示させたフッターは

こちらが望むものとは違っていたので結局は使えないことが判明。


こんなの。

 

そんなプチ発見、機会があれば使っていきたいと思いつつ、あまり使いそうもない気がした will display〜.