UITableViewCell セルの再利用の問題
設定画面に他の自作アプリ情報を加えたりしようと思い、UITableViewController で1行だけセルの高さを変更したり、画像を追加したりしたところ、スクロールするとおかしな表示になってしまう。
おかしいので調べていたところ、セルの再利用により再利用できないものを再利用してしまっていたらしい。具体的には、dequeueReusableCellWithIdentifierなどに渡すstaticなCellIdentifier をセルごとに変えるべきだったところを同じにしてしまっていたためだった。
iPhoneのオモチャ箱 P299によると、下記の要素が異なる場合、異なるものとして定義する必要がある。
- UITableViewCellStyle
- 画像の有無
- 各テキストの有無
- 画像の幅、高さ
- セルの高さ
- 背景の色
- テキストのフォントの設定
- アクセサリービューの種類
これによると、結構こまめに変えないといけないようだ。今までよくこれを知らないで実装できていたものだ。
自分の場合のように、行数が少なくてReuseするほどでもなければ、dequeueReusableCellWithIdentifier をしないという手もある。
これにより、本当は流用できない行を流用してしまう問題を回避することができる。
iPhoneのオモチャ箱には非常に丁寧に詳しくUITableViewの使い方が書かれている。
| iPhoneのオモチャ箱 iPhone SDKプログラミング | |
![]() |
徳井 直生 岡村 浩志 笠谷 真也 深津 貴之 青木 太臣 大宮 聡之 瀬尾 浩二郎 バスケ 宮川 義之
ワークスコーポレーション 2010-06-22 おすすめ平均 |
関連記事
-
-
iOS15にアップデート
2021/09/21にiOS15が公開され、そろそろ初期不具合もわかってきた頃だと思いアッ
-
-
EverLearn 1.9.0 に音声認識機能を追加しました
EverLearn 1.9.0 にて音声認識機能を追加しました。ホーム画面から、マイクボタンを押して
-
-
斬新なリーダー像 「フェイスブック 若き天才の野望」
2011年1月に出て話題になっていた本をかなり遅ればせながら読了。 500ページ以上あるが、かなりお
-
-
[iOS SDK] UIAlertView が消えた後にキーボードが表示される
昔書いたコードで、UIAlertView に setAlertViewStyle で UIAlert
-
-
MacPeople 2009.11
MacPeopleは定期購読しているのだが、今回はレビュープラスからレビュアーに選ばれたので、もう一
-
-
LogLocations 1.4.0 写真表示対応
行動ログは取りたいが、何も操作したくない。という自分のようなずぼらなログ好きユーザ向けのアプリ、L
-
-
iPhone アプリアイコン設定
AppStore でアプリを売る一連の流れを知るために作っているアプリが大体できてきたので、ついにア
-
-
とりあえず iPhone 6 Plus に対応する
iPhone 6 Plus は対応したアプリでないと画面が自動的に拡大されてらくらくホンぽい表示にな
-
-
Reject履歴 EverLearn 1.7.0
どうやら Apple Watch対応アプリの審査は厳しいらしいので、Rejectされた履歴を書いてみ
-
-
iPhone 3G 購入
ついにiPhone 3G 購入。とは言っても自分ではなく奥さん用。 そのうちiPhone 3G 初


誤字が多い
iPhoneのオモチャ箱