TitaniumでiOS TableViewの長押しイベント時に処理を行う方法

| コメント(0) | トラックバック(0)

テーブルの行を長押しして、その行に対する特別な処理を行いたくてTableViewのlongpressイベントを使おうとしました。

プログラムはCoffeeScriptで書いてますので自分で試す場合はJavaScriptに変換して下さい。

出力結果:

[DEBUG] longpress> undefined undefined

行の情報が渡ってこねー(-ω-)

そこで何が呼ばれてるのかtouch系のイベントを並べて見てみると、

出力結果:

[DEBUG] touchstart> 1 TITLE-2
[DEBUG] longpress> undefined undefined
[DEBUG] touchend> 1 TITLE-2
[DEBUG] click> 1 TITLE-2

touchstartでindexやrowを覚えて、longpressが起こったときに使えれば良さそうです。 覚えた情報はtouchendで初期化するとよさげ。

ところがよく見ると余計なことにclickも呼ばれている(-ω-)

longpressのでclickイベントの発火を抑えるいい方法が見つからず、結局longpressの処理内でフラグを立てclick処理で判断するというコードに落ち着きました。

あまりカッコよくはないですね。Titanium側でlongpressが検知されたらclickは呼ばない仕様にしてもらえたほうが自然な気がします。

ひょとしたらclickが呼ばれないと何かできなくなる操作があるのかなぁ。



トラックバック(0)

トラックバックURL: http://www.iwazer.com/mt/mt-tb.cgi/817

コメントする

このブログ記事について

このページは、iwazerが2012年3月17日 23:24に書いたブログ記事です。

ひとつ前のブログ記事は「link_to_ifで条件がfalseの時、表示を消す方法」です。

次のブログ記事は「ぴよ盛り100までの攻略方法 」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。