UITableViewCell セルの再利用の問題
設定画面に他の自作アプリ情報を加えたりしようと思い、UITableViewController で1行だけセルの高さを変更したり、画像を追加したりしたところ、スクロールするとおかしな表示になってしまう。
おかしいので調べていたところ、セルの再利用により再利用できないものを再利用してしまっていたらしい。具体的には、dequeueReusableCellWithIdentifierなどに渡すstaticなCellIdentifier をセルごとに変えるべきだったところを同じにしてしまっていたためだった。
iPhoneのオモチャ箱 P299によると、下記の要素が異なる場合、異なるものとして定義する必要がある。
- UITableViewCellStyle
- 画像の有無
- 各テキストの有無
- 画像の幅、高さ
- セルの高さ
- 背景の色
- テキストのフォントの設定
- アクセサリービューの種類
これによると、結構こまめに変えないといけないようだ。今までよくこれを知らないで実装できていたものだ。
自分の場合のように、行数が少なくてReuseするほどでもなければ、dequeueReusableCellWithIdentifier をしないという手もある。
これにより、本当は流用できない行を流用してしまう問題を回避することができる。
iPhoneのオモチャ箱には非常に丁寧に詳しくUITableViewの使い方が書かれている。
iPhoneのオモチャ箱 iPhone SDKプログラミング | |
徳井 直生 岡村 浩志 笠谷 真也 深津 貴之 青木 太臣 大宮 聡之 瀬尾 浩二郎 バスケ 宮川 義之
ワークスコーポレーション 2010-06-22 おすすめ平均 |
関連記事
-
iPhone/Androidアプリで週末起業(山崎潤一郎著) を読んでみた。
前著を読んで、ちょっと楽観的に書きすぎていると思ったけれどもとりあえず最新版が出たので読んでみた。
-
[iOS] リズムくんにiOS 3.1.3 で問題発生、修正版Submit
昨日 2012/09/07 リズムくんのサポートページ に、下記のレポートあり。 iOS3
-
EverLearn 1.8.0をリリースしました
以前から、iOSから英単語をPebbleに転送できるアプリを作っていましたが、今回はPebbleの画
-
ITMS-90175 Legacy Language Designator
自分は自作アプリの非常に古いプロジェクトをいまだにメンテすることがあるので、ITMS-90
-
Invalid EvernoteSession で落ちる問題に遭遇
EverLearn アプリのバージョンアップ版を作成したのでテストをしていたところ、iOS5 で起動
-
自作iPhoneアプリ いろいろレビュー依頼
アプリ制作日誌 #app_24: iPhoneアプリのレビューを、寄稿・依頼できるサイトまとめ。 と
-
[iPhone 6 Plus] TUNEWEAR の iPhone 6 Plus 用ケースを買ってみた
iPhone 6 Plus 購入時に、とりあえず購入した Simplism のケースは、すぐ
-
無料版アプリの効果について
最近いくつかiPhoneアプリの無料版の提供に関してのブログが上がって、考えさせられている。 fla
-
iPadアプリおんぷちゃんでMiselu C.24 をサポートしました
Bluetoothキーボード兼iPadカバーの Miselu C.24 が届いたので、iPadアプリ