UITableViewCellの怪

iPhoneの話。


UITableViewCellをカスタマイズして
画像や文章を表示したりしてるんですが、
これがかなりの勢いでメモリ馬鹿食いなので困ります。


カスタマイズしたセルの作り方は
Interface Builderを使ってカスタマイズしたUITableViewCellを作る方法
Interface BuilderでカスタムUITableVIewCellを作るときの注意点
あたりが参照になります。


で、作って表示してみると普通に表示されるんですが、
セルをクリックしたりして違う画面に移っても
メモリが解放されないのでどんどんメモリ使用量が増えていきます。


理由は簡単で、UITableViewCellをreleaseしていないからです。
しかし、releaseしてしまうとUITableViewを表示していた画面に戻ったときに
当然クラッシュするので困りもの。


他のアプリを起動してActivity monitorを見てみると、
ニコ動アプリとか純正のYoutubeアプリでも
メモリを食いまくっています。


そこで、とりあえずメモリ使用量を減らしましょうということで試行錯誤してみました。


10 iPhone Memory Management Tips
アプリ高速化のための5つのノウハウ
とか見てもxibは遅いといっているので、
まずはInterface Builderを使わずに
UITableViewCellを継承したクラスをつくりました。
UILabelやUIImageViewを速攻でreleaseすることで
メモリを節約することが出来ます。



ただ、期待していたほど効果がないので色々いじっていたところ、
結局文字列の描画が激しくメモリを消費するということで、
UILabelのUIFont指定を外してみたらかなりいい感じになりました。


だからといって文字サイズの指定が出来なければ
普通に困るので上手くどうにかする方法があればいいんですが。