2012年3月アーカイブ

お待たせしました。
あなたのiPadやiPhoneがインテリアになる。
Visualizer series Vol.2 蛍 が本日より発売開始です!

Visualizer series 公式サイト:
http://ict-fractal.com/ICTF0010/index.html

AppStore:
http://itunes.apple.com/jp/app/visualizer-vol.2-ying/id509844319?mt=8a

画面縦横対応、Retinaディスプレイに対応など全画面でビジュアライザーを楽しむ為の機能が盛り込まれています。

ちょっと先ではありますが、夕涼みしながらご自分の好きな曲を流しつつ蛍が舞うiPadを壁に立てかけて・・・なんて如何ですか?

無料ですので、是非お試しください!

Visualizer series Vol.2 蛍

こんにちは。開発担当のICTFです。


今回はUITableViewCellの再利用時に癖の強い動作を見つける事ができましたので、その事について書こうと思います。


UITableViewは基本的に、メモリ効率化のためセルを再利用します。

セルの再利用とは、直前に使用した同タイプのセル情報を用いて表示を行なう事を指します。


1つのテーブル上で2種類のセルを用いる物とします。(便宜上タイプ1、タイプ2とします)

タイプ1、2ともにUITableViewCellクラスを用います。

両者の違いは、detailTextLabelに文字列を設定するかしないかの差のみです。

両者の差を実現するため、セルの再利用時に次の様なコードを記載していました。


if (タイプ1) {

    cell.detailTextLabel = 文字列;

}


タイプ1には文字列を設定し、タイプ2には必要がない為処理を記載していません。

動作確認を行なうと、一見正しくテーブルが表示されます。

タイプ1には詳細文字列が表示され、タイプ2には表示されません。

しかし、テーブルのスクロールを行なった途端、タイプ2に設定してもいない詳細文字列が表示されてしまうのです。


この現象の原因は、先ほど述べた「セルの再利用」に起因します。

タイプ2のセルを表示するため再利用するセルは、直前に使用されたセル情報を元に作られます。

その元情報がタイプ1だった場合、タイプ2では再利用された詳細文字列がそのまま使用される事になります。

解決方法は次のようになります。


if (タイプ1) {

    cell.detailTextLabel = 文字列;

}

else {

    cell.detailTextLabel = nil;

}


セルのタイプにより使用する項目や使用しない項目があると思いますが、共通処理として再利用時にはすべての項目を初期化する処理を組み込んだ方が無難かもしれません。

あるいはUITableViewCellクラスにその辺りの初期化処理を組み込んだラッパークラスを作ってしまうのも良いかもしれません。


また別のアプローチとして、少しでも表示方法の異なるセルの場合は再利用時に区別するということも考えられます。

再利用するセルはタグ情報で区別・指定できますので、今回のケースでもタイプ1、2ごとに区別する事は簡単です。

しかし、再利用元を細分化する事は本来の「セルの再利用によるメモリ効率化」という点から見てあまり良策に思えない気もします。

こんにちは。開発担当のICTFです。

あなたのiPadやiPhoneがインテリアになる。
Visualizer series Vol.1 まっくら森 が発売中です!

Visualizer series 公式サイト:
http://ict-fractal.com/ICTF0010/index.html

AppStore:
http://itunes.apple.com/jp/app/visualizer-vol.1-makkura-sen/id505919344?mt=8

画面縦横対応、Retinaディスプレイに対応など全画面でビジュアライザーを楽しむ為の機能が盛り込まれています。
無料ですので、是非お試しください!
こんにちは。開発担当のICTFです。

防衛司令官急募がバージョン2.1になりました!
最新バージョンでは新アイテムとして「バリア」が追加されています。
火の玉おばけが1/10の確立で落とすのですが、拾うと生存しているすべての街にバリア効果が発動します。
バリア発動中は、被弾しても1回だけペナルティが無効になります。
ダブルポイントも解除されませんし、弾薬の減少もありません。

今まで以上に高得点を狙いやすくなりましたので、是非チャレンジしてみてください。

防衛司令官急募!公式サイト
http://ict-fractal.com/ICTF0003/index.html 

※防衛司令官急募!Liteにつきましては、現在審査中です。
 バージョンアップされ次第バリアアイテムが追加となりますので、もう暫くお待ちください。