この奇妙なバグは、2 日間連続して私を悩ませています!
それぞれスクロール ビューを含む 5 つのビューがあり、クリックされたときに z-index を設定します。奇妙な理由で、最後から 2 番目の要素がクリックされた場合を除き、z-index が 3 の要素は常に z-index が 4 の要素の上に表示されます。何が起こっているのですか?
以下のコードを確認してください。合金を使用しています。明らかに製品コードではありませんが、私のコードではない可能性があることに気付いたので、次のコードでテストしました。助けてくれてありがとう!
Alloy マークアップ:
<!-- index.xml -->
<Alloy>
<Window id="container">
<View id="v0" class="test" top="0">
<ScrollView borderColor="green">
<Label/>
</ScrollView>
</View>
<View id="v1" class="test" top="40">
<ScrollView borderColor="blue">
<Label/>
</ScrollView>
</View>
<View id="v2" class="test" top="80">
<ScrollView borderColor="red">
<Label/>
</ScrollView>
</View>
<View id="v3" class="test" top="120">
<ScrollView borderColor="purple">
<Label/>
</ScrollView>
</View>
<View id="v4" class="test" top="160">
<ScrollView borderColor="teal">
<Label/>
</ScrollView>
</View>
</Window>
</Alloy>
主なスクリプトは次のとおりです。
// index.js
zs = [];
changeOrder = function(){
for(var i=0; i<5; i++){
z = zs[i];
v = $["v#{i}"];
// Set the supposedly correct order of view stack
v.setZIndex(z);
// Display the order for debugging
v.children[0].children[0].setText(z);
};
$.v0.addEventListener("click", function(){
zs = [5,4,3,0,1];
changeOrder();
});
$.v1.addEventListener("click", function(){
zs = [1,5,4,3,0];
changeOrder();
});
$.v2.addEventListener("click", function(){
zs = [0,1,5,4,3];
changeOrder();
});
$.v3.addEventListener("click", function(){
zs = [3,0,1,5,4];
changeOrder();
});
$.v4.addEventListener("click", function(){
zs = [4,3,0,1,5];
changeOrder();
});
$.container.open()
Ti モバイル 3.0.22 Alloy 1.0.0 iOS シミュレーター 6.1 OSX 10.8