我正在创建一个TableView,然后循环遍历一个DB记录集,一次向表中添加1个TableViewRow。但有些事情是行不通的。该表最终在窗口上,因为我可以看到行行分隔符,但标签/文本和开关不会出现。
这是我的表定义:
var genres = Ti.UI.createTableView({
top: 0,
height: '75%',
backgroundColor: '#000000',
backgroundFocusedColor: '#9DF5B7'
});
[ENTER LOOP]
var genreRow = Titanium.UI.createTableViewRow({
height: 'auto'
});
var genreText = rsGenres.fieldByName('Genre');
var genreLabel = Ti.UI.createLabel({
color: '#ffffff',
//text: genreText,
text: 'foobar',
textAlign: Ti.UI.TEXT_ALIGNMENT_LEFT,
width: Ti.UI.SIZE, height: Ti.UI.SIZE
});
Ti.API.info("Genre: " + rsGenres.fieldByName('Genre'));
var genreSwitch = Ti.UI.createSwitch({
titleOn: 'On',
titleOff: 'Off',
right: 5,
value: true // mandatory property for iOS
});
genreRow.add(genreLabel);
genreRow.add(genreSwitch);
genres.add(genreRow);
[退出循环]
win4.add(genres);
你可以看到我在genreLabel中注释了genreText绑定,并用硬编码的" foobar"文字,但即便没有出现。你也可以看到我的Ti.API.Info()行,在控制台中我可以看到我的所有类型,数据在那里,循环正在工作。
为什么我看不到表格上的标签文字和开关控件?
答案 0 :(得分:2)
在迭代循环时在表视图中追加行
table.appendRow(row);
或
在某些数组中添加表视图行,例如
var data= [];
// loop start
data.add(row);
// loop end
table.setData(data);