今回のバグの見つけ方
- 数時間ハマる。
- 気分転換にご飯を食べる。
- はじめてのおつかいを見て、心が洗われる。
- 机に戻る。
- そもそも、UITableViewCellの枠線が表示されていないのに気がつく。
- セルが最利用されなかったときは問題ない。
- カスタムセルが怪しいので、別TabにTestTableViewControllerとTestCellを作る。
- 何も手を加えていない状態では、問題なく動く。
- おかしいセルとの違いは、layoutSubviewsメソッドだよな。
- コメントアウトしたら枠線が表示された。
- Overrideかorz
そこまで何を調べていたかというと、
- TableViewやカスタムCellのIBからの設定。
- tableview:heightForRowAtIndexPath:の呼び出しタイミング。
tableview:heightForRowAtIndexPath:の呼び出しタイミングが、セルの更新時に毎回呼ばれているかと思ったら、実はTableView更新時の一回きりだった。
その時点で、自分はTableViewの使い方を間違っていたのでは?という気持ちになってしまい、以下泥沼。
UITableViewCellのlayoutSubviewsが呼ばれると設定されるみたいなので、高さだけどこか別の場所に保持しているのだろうか。