1月 022012
 

GitHubに手こずってなかなか記事がUPができない。。(とか愚痴る)

今回はTableViewのRowに設定した子要素にアクセスする感じの部分。

TableViewの行の設定は配列にrowのデータを入れたりcreateViewRowで設定したりとか複数の方法があるけども、どうやら行を選択して次のアクションをさせるにはTableViewにクリックイベントを設定するらしい。

その時に設定するのが「hasChild」とか「hasDetail」とかだったりするんだけど、特に何もしたくない場合の設定もしなければいけない。

それが、下記のコード。

touchEnabled:false,
selectionStyle : Titanium.UI.iPhone.TableViewCellSelectionStyle.NONE

ただ、このコードは見た目を制御しているだけなのでTableViewにクリックイベントを設定した場合は普通に他のものと同様に発生してしまうのでクリックイベントの設定のほうで何とかするっぽい。 なので、こんな感じにしてみた。

tableview.addEventListener('click',function(e){
//touchEnabledがfalseを除くのとhasChildとhasDetailがtrueの時のみ実行
if(e.rowData.touchEnabled || e.rowData.hasChild || e.rowData.hasDetail){

{中略}

}
});

と言った塩梅で、touchEnabledがtrue(falseじゃない)だったりhasChildがtrueだったり、hasDetailがtrueの場合に実行するようにする。おそらくどれか当てはまるはず。(今、書いてて気がついたけどtouchEnabledは!=falseのほうがいいのかな?)とりあえず、touchEnabled=falseにするならhasChildとかしないんじゃないかっていう勝手な解釈もありつつ。そのへんは臨機応変で。
ちなみに、hasChildとhasDetailは何が違うのかというのは今のところよくわからないけど、hasDetailの方は行をクリック後に取得するデータにindex=1が入ったり詳細ボタン部分をクリックする場合はdetail=1(index=1も入る)だったりするのでそのへんで何か違う処理を分岐したりするのかな?(ちなみにhasChildはどちらも0が入る、まぁ、そのへんは今度かな?) ツイートツイート

Related posts:

  1. Ti.UI.createTableViewRowは避けて通れない雰囲気
  2. JavaScriptで子から親を変更(したように見せる)
  3. Titaniumのまとまり切ってないTableViewの基本
  4. にくにく~
  5. iTablet? Apple Slate?

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>