今回のバグの見つけ方

  • 数時間ハマる。
  • 気分転換にご飯を食べる。
  • はじめてのおつかいを見て、心が洗われる。
  • 机に戻る。
  • そもそも、UITableViewCellの枠線が表示されていないのに気がつく。
  • セルが最利用されなかったときは問題ない。
  • カスタムセルが怪しいので、別TabにTestTableViewControllerとTestCellを作る。
  • 何も手を加えていない状態では、問題なく動く。
  • おかしいセルとの違いは、layoutSubviewsメソッドだよな。
  • コメントアウトしたら枠線が表示された。
  • Overrideかorz

そこまで何を調べていたかというと、

  • TableViewやカスタムCellのIBからの設定。
  • tableview:heightForRowAtIndexPath:の呼び出しタイミング。

tableview:heightForRowAtIndexPath:の呼び出しタイミングが、セルの更新時に毎回呼ばれているかと思ったら、実はTableView更新時の一回きりだった。
その時点で、自分はTableViewの使い方を間違っていたのでは?という気持ちになってしまい、以下泥沼。
UITableViewCellのlayoutSubviewsが呼ばれると設定されるみたいなので、高さだけどこか別の場所に保持しているのだろうか。