Collections 用钛合金操作25个视图最安全、最快捷的方法是什么

Collections 用钛合金操作25个视图最安全、最快捷的方法是什么,collections,titanium,appcelerator,appcelerator-titanium,appcelerator-alloy,Collections,Titanium,Appcelerator,Appcelerator Titanium,Appcelerator Alloy,我有25个钛合金独立视图,它们都是基于集合中的模型创建的,如下所示: tiles.each(function(tile){ var tileView = Alloy.createController('board/tile', { tile: tile, }); tile.controller = tileView; $.boardContainer.add(tileView.getView()); } 在本例中,tile是Appcelerat

我有25个钛合金独立视图,它们都是基于集合中的模型创建的,如下所示:

tiles.each(function(tile){
    var tileView = Alloy.createController('board/tile', {
        tile: tile,
    });
    tile.controller = tileView;

    $.boardContainer.add(tileView.getView());
}
在本例中,
tile
是Appcelerator集合,
tile
是模型

在应用程序逻辑的某一点上,我需要调用所有25个tile,并隐藏一个视图

我当前要做的是再次循环遍历集合,并调用视图中导出的函数,如下所示

function disableArrow(){
    $.arrow.visible = false;
    arrowsVisible = false;
}
exports.disableArrow = disableArrow;

这是可行的,但不是很平滑,因为当你有一个缓慢的设备,你可以看到瓷砖渲染。。。对于这种问题,最好的解决方案是什么?

我想您可以将TableView与数据绑定结合使用,而不是手动创建一组视图。 看这里:

顺便问一下,当您只需要视图时,为什么要创建25个控制器?

我认为没有一个解决方案可以解决您试图实现的目标。如果您需要操纵25个视图,则需要这样做。你不可能一次操纵所有人


你唯一可以优化的就是在它们之间循环。您可以-hacky-保留一个直接引用所有这些
箭头
视图的数组,并循环通过该数组,而不是通过控制器。

请查看这些视图在网格中,它们需要四处移动、侧向移动等。因此,TableView不是一个选项。此外,每个视图都有相当多的逻辑,因此确实需要一个控制器来自行包含逻辑。所以谢谢,但这不是解决方案,我担心数据绑定不会有帮助,反而会产生更糟糕的结果,因为它会重新呈现整个表。