1

次のように、Titanium に 25 の個別のビューがあり、これらはすべてコレクション内のモデルに基づいて作成されます。

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

    $.boardContainer.add(tileView.getView());
}

この場合、tilesは Appcelerator コレクションであり、 atileはモデルです。

アプリのロジックのある時点で、25 個のタイルすべてを呼び出し、ビューを非表示にする必要があります。

私が現在行っていることは、コレクションを再度ループし、このようにビューにエクスポートされた関数を呼び出すことです

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

これは機能しますが、低速のデバイスを使用している場合、タイルのレンダリングが表示されるため、あまりスムーズではありません... この種の問題に対する最善の解決策は何でしょうか?

4

2 に答える 2

0

あなたが達成しようとしていることに対する解決策はないと思います。25 個のビューを操作する必要がある場合は、それが必要です。それらすべてを一度に操作することはできません。

最適化できる唯一のことは、それらをループすることです。あなたは - ハック - これらすべてのarrowビューへの直接参照を持つ配列を保持し、コントローラーを通過する代わりにそれをループすることができます.

于 2016-01-15T09:56:23.983 に答える
-1

一連のビューを手動で作成する代わりに、TableView をデータ バインディングと組み合わせて使用​​できると思います。ここを見てください: Alloy data binding
ところで、ビューだけが必要なのに、なぜ 25 個のコントローラーを作成するのでしょうか?

于 2016-01-14T13:45:20.907 に答える