例えば、文字のサイズによってセルの高さを変えたい場合、デフォルト状態のセルの高さが欲しかったりする。
- コードで作成したセルはalloc, init…で生成すればOK
- UINibで生成したセルは、
[UINib nibWithNibName:bundle:]
でinstantiate...
すればOK - UIStoryboard上のセルは?
ということで、取得方法を検索したのだがうまく見つからない。ただ単に設計図がほしいだけなのに。
ということ、取得する方法を考えてみました。
registerNibがあるのだからその逆は?
UIStoryboard上に作成したUITableViewCellは、registerNibかregisterClassされていると考えました。このregisterの逆はと考えると、dequeueReusableCellWithIdentifier
かなと当たりをつけました。
viewDidLoad:
あたりで、dequeue...
を実行してセルを取得することが出来ました。使いまわしされるUITableViewCellのインスタンスはUITableViewが管理しているので、念のためretainせず、サイズ(CGSizeやCGRect)だけもらうことにしました。
この方法だとUIStoryboard上でセルのデフォルトサイズなどを変更しても、コードは一切いじる必要なく、動的なセルサイズ変更の処理ができます。ちなみに、セルサイズの変更は、文字列からrectを取り出すあのメソッドですね。bounds…
これが、正しい方法かわかりませんが、誰かの手助けになれば。