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: