我在Titanium中有25个单独的视图,它们都是根据集合中的模型创建的,如下所示:
tiles.each(function(tile){
var tileView = Alloy.createController('board/tile', {
tile: tile,
});
tile.controller = tileView;
$.boardContainer.add(tileView.getView());
}
在这种情况下,tiles
是Appcelerator集合,tile
是模型。
在app的逻辑中,我需要调用所有25个tile,并隐藏视图。
我目前所做的是再次遍历该集合,并调用在视图中导出的函数,如此
function disableArrow(){
$.arrow.visible = false;
arrowsVisible = false;
}
exports.disableArrow = disableArrow;
这可行,但不是很顺利,因为当你有一个慢速设备时,你可以看到瓷砖渲染......对于这类问题,什么是最好的解决方案?
答案 0 :(得分:0)
我认为没有针对您尝试实现的解决方案。如果你需要操纵25个视图而不是需要发生的视图。你不能一次操纵所有这些。
您唯一可以优化的是循环遍历它们。你可以 - hacky - 保持一个数组直接引用所有这些arrow
视图,然后循环遍历它而不是通过控制器。
答案 1 :(得分:-1)
我猜你可以将TableView与数据绑定结合使用,而不是手动创建一堆视图。
看这里:Alloy data binding
顺便说一下,为什么在需要视图时创建25个控制器?