うーむ、奇妙な現象にハマっていた!!
説明が難しいのだが、UITableViewControllerで開閉(Collapse)可能なテーブルセルを作ったところ、ヘッダビューの表示が崩れるという問題
言葉での説明が難しいのでスクリーンキャストを見てください
開閉すると、セクションヘッダが移動しない。というより移動しつつも、残像がある
“読み物ラインアップ”、”診断ラインアップ”などは下記のメソッドのオーバーライドで作成している
[cpp]
– (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
[/cpp]
この問題を改善するためにviewForHeaderInSection:を使わずにtitleForHeaderInSection:を使ってみたりしたのだが改善せず
その他にもかなりコードを削りながらデバッグしたが結局原因が分からないまま。この画面はUITableViewControllerをxibもstoryboardも使わずにprogramaticallyに作成していたので、一旦この実装を置いといて、新たに全く違うUITableViewControllerを実装することにした
ただしstoryboardを使って。storyboard上でUITableViewControllerを配置して、ファイルと関連付け、後は元のソースコードをひとつひとつ追加して行く。状況を確認しながら追加して行ったのが、何故かこちらの方法では上の奇妙な現象は発生しない
そのままコードを補完していったところ、最終的には元のファイルと全く同じ内容になった。ただ違うのはプログラム的にTableViewを作っているか、Storyboardで初期化しているかの違いだけ
参考までに直った状態はこの通り
全くの謎です。どこかに原因があるのでしょうが、少し面倒でもStoryboardを使ってビューコントローラーの初期化をした方が無難かも知れません
しかしこのバグの調査に3日ぐらいハマったよね!! WTF!!!
コメントを残す