tableViewのdataにアクセス出来ることがわかった

配列の操作 - ひらっち's diary
↑なのでこれは、少し変更することになる。

var tableView = Ti.UI.createTableView({});
var row_data = [];

for (i=0; i<=4; i++){
  var row = Ti.UI.createTableViewRow({});
  var label = Ti.UI.createLabel({
    text: 'hello World!'
  });

  row.add(label);
  row_data.push(row);
}

tableView.data = data;

↑よくあるコード

で、例えばrowを増やしたり、減らしたり、とにかく変更したい時とか、のメモを。。。

Ti.API.info()で見ていること前提で、、、

tableView.data

>> [Object TableViewSection]

tableView.getData()

>> [Object TableViewSection]

(tableView.getData())[0] もしくは tableView.data[0]

>> [Object TableViewSection]

(tableView.getData())[0].rows もしくは tableView.data[0].rows

>> [object TableViewRow],[object TableViewRow],[object TableViewRow],[object TableViewRow],[object TableViewRow]


(tableView.getData())[0].rowsでやっとrow_dataにアクセスできる。
で、row_dataはオブジェクトじゃなくて配列なのでpushとかspliceで変更ができる。

つまりは、rowsの存在を知ったから良かったね、って話。

ちなにみ、rowsはgetRows()でも同じみたい。たぶん。。。ドキュメント見ると違うっぽいけど、、、

配列の操作


例えば、配列fruitのブドウを先頭へ移動させたい時。

var fruit = ['リンゴ', 'バナナ', 'ブドウ', 'ミカン', 'イチゴ'];
var f = fruit[2];

fruit.splice(2,1);
fruit.unshift(f);

↓って、なる。

fruit = ['ブドウ', 'リンゴ', 'バナナ', 'ミカン', 'イチゴ']

実際やろうとしてるのは、Titanium上で

var tempData = data;
tableView.data = data;

として、

tableViewを操作するときは、tempDataを編集して

tableView.data = tempData;

こんな感じでtableViewを更新する。。。

Titanium的に良いのかどうかはわかんない。。。

s = 'hello\n Wlrld!';

s.match(/[^\n].*/)[0];   //helloが返ってくる。
s.match("/[^\n].*/")[0]; //エラー

ダブルクォートとかシングルクォートで囲むとアカンよね。

久しぶりに正規表現使うたびに嵌ってきがする。