背景
下までスクロールしたら、新しくTableViewに要素を追加しようと思いました。
insertRowAfterがうまくいかない
調べると「insertRowAfter」というのが出てきました。
insertRowAfter( index, row, [animation] ) : void
Parameters
index : Number
Index of the row to insert after.
row : Titanium.UI.TableViewRow/Dictionary
Row to insert.
ドキュメントには上のように書いてあり、その通りにして書いたはずですが、動かず。調べると、ドキュメントが間違っているという記事もありました。また挿入したい位置の一つ前のindexを指定するというのも面倒だと思いました。お尻に追加するだけで良かったので、途中に挿入することを考えない方法はないものかと思っていました。
・参考
Appcelerator Documentation
画面下部までスクロールしたタイミングでTableViewの情報更新する - 40歳からのキャリアチェンジ
appendRowを使う
調べると、「appendRow」を発見しました。
appendRow( row, [animation] ) : void
Appends a single row or an array of rows to the end of the table.
ドキュメントより抜粋してみました。どうやらお尻に追加できるようです。
//スクロールが下までいったとき tableView.addEventListener("scrollEnd",function(e){ //追加するrowを生成 var newRow = makeRowLabel(); //tableViewにrowを追加 this.appendRow(newRow); });
makeRowLabel()は自分で定義した関数です。ここでは詳しい内容は省略しています。
早速appendRow()に書き換えて実行すると、スクロールが下まで来たときに新しく要素が追加されてました。良かった!
・参考
TitaniumでTableViewにTableViewRowが追加できなくて死にたくなったメモ - リア充爆発日記