|
|
||
オライリーの「iPhone SDK アプリケーション開発ガイド」では、セルのIDをこんな感じで決めています。
NSString *CellIdentifier = [NSString stringWithFormat:@"%d:%d", [indexPath indexAtPosition:0], [indexPath indexAtPosition:1]]; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
テーブルのセルそのもののIDをつけている感じ。
でも、他の本を見ると
NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
こんな感じですよね。
つまり、セルの種類によってIDを変える感じ。
前者だと、テーブルの行数分のセルを作ってしまって、ものすごく富豪的で無駄だと思うんですけど、どうなんでしょ?
たとえば、標準のカレンダーアプリの1日表示のところみたいに、情報(この場合は一日分の予定)をスクロールして見られるようにしたい。
この場合、UIScrollViewに情報を一気に描画しておいて、それをスクロールして見られるってのが良いのかなーって気がするんだけど、UIScrollViewに直接描画するんじゃなくて、その上にUIImageViewをaddSubViewして、そこに描画してやった方がいいんだろうか。
UIScrollViewのdrawRectで描画すると、その部分しか描画できないですよねー。
うーん、カレンダーのあの部分ってどういう実装になってるんだろう……。
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=296956954
登録してから結局3ヶ月かかりましたが……。
ついに公開されましたー!!
試した結果、ご推察の通り前者はセルが再利用されることはなく、しかも毎回初期化されるので遅くなってしまいました。
後者が正しい処理ですね。
ちなみにほかにも間違えている本があるので、注意が必要です。
その解決策としてrowごとにCellIdentifierを振っているようですね。
http://ameblo.jp/cascket/entry-10479166426.html