残念なことにUITableViewはセルを複数持てないので、セルの中でLabelを追加して実装していると思われる。
僕もこのエントリを参照してAppStoreのカテゴリライクなUIを実装し、無事初期化できた。大変参考になった。
Interface Builderを使ってカスタマイズしたUITableViewCellを作る方法(追記あり) - 24/7 twenty-four seven
ここまでは良い。全然いける範囲。
で、ずっと頭を悩ませている問題は「セルのどこをタップしたのか」をどうやって検知するかだ。
セルが2つオブジェクトを持てればそのオブジェクトのイベントハンドラがコールバックされたかを拾えそうなもんだけど、1つのオブジェクトしか持ってないので、そんなことはできまいて。セルの中のオブジェクトのコールバックイベントを拾えるのだろうか。カスタムセルのプロパティになっているUIImageViewとかのイベント。結構無理っぽい。
で、今現在考えているのが、スクロールすることも考えて、
- didRowelectAtIndexをキャッチして、何行目なのかを拾う。
- テーブルのデータは別のオブジェクトが保持。その行数とindexをマッチさせておく。
- touchAs~をカスタムセル内で実装して座標軸を拾う。
- iPadの画面の高さと幅からセルのrowHeightを割り算して、左右どちらをクリックしたかを拾う
- プロパティにデータセットして画面遷移。
これしか思いつかなかったが、touchAsが拾えなかった時点で糸冬了だ。
アドバイス頂けると超うれしいです。