Titanium MobileでiPhoneアプリ開発 同一Viewのオブジェクトごとにタップ判定を実装する方法
こんにちは!こんにちは!loopunqoolです。
さて、無事にバグフィックスされた!読物語のver1.02がAppStoreでリリースされて、とりあえず一安心している今日この頃です。
閑話休題的にぽつぽつとアプリ開発中に得た、ノウハウをメモ的に残していこうと思い、つれづれ書き残していきたいと思います。
もし、自分と同じように「この処理を実装したいけれど、どうすればいいんだろう?」って悩んでる人の救いになれば幸いかなと。
はじめに、同一Viewで複数のオブジェクトを持ってそれぞれに処理をもたせたい場合の話をしようかと。
まずは下記をご覧ください。
読物語ではブックマークした本を既読と未読を本の画像をタップすることによって切替えすることができるのですが、通常TableViewにはオブジェクトごとにタップを判定させる機能がなく、TableViewのどのViewがタップされたかの判定しかできません。
オブジェクトごとにタップされたかを判定させるには、オブジェクトに名前をつけてあげる必要があります。
例として、
var iconImage = Titanium.UI.createImageView({ image:book.mediumImageUrl, width:42, height:64, left:8, top:4, bottom:4, clickName:'pic' });
上記のオブジェクトiconImageの要素としてclickNameを定義しており、今回'pic'として宣言しております。
これをTableViewにaddして、おいてclickイベントを実行するときにclickNameを指定してあげると。
tableView.addEventListener('click',function(e) { if (e.source.clickName =='pic') { //実行したい処理(略) } }
これでオブジェクトごとにタップの判定を持たせることができます。