1

別のビュー(viewA)の上にビュー(viewB)を配置しています。下のviewAには2つのボタンがあり、btn1はクリックでき、btn2はクリックできません。理想的には、クリック伝播をviewBからbtn2に渡したいと思います。

問題は、viewBのzIndexがviewAよりも高いことに関係していることを認識しています。つまり、ボタンは完全に表示されていますが、技術的にはbtn2がその背後にあります。

とにかく、それを再構築せずにクリック伝播を渡すことはありますか?

これは実際のコードの非常に単純化されたバージョンであり、viewBにbtn2を追加することはできません。実際のコードでのbtn2の正確な位置は不明です。これは、すべて独自の上部と左側を持つ他の多くのビューの子です。

それが不可能な場合、私も同様にそれを聞くことに興味があります。ありがとう。

iPhone/iPad用のビルドTi.SDK2.0.2.v20120417133255Ti.Studio 2.0.1 xCode 4.3.2

var w

in = Titanium.UI.createWindow({  
    backgroundColor:'#fff'
});

var viewA = Ti.UI.createView({
        backgroundColor: '#DDD',
});

var btn1 = Ti.UI.createButton({
        top: 50,
        title: 'Click 1',
        height: 50,
        width: 150,
        zIndex: 100,
});
btn1.addEventListener('click', function(){
        alert('click 1');
});
viewA.add(btn1);


var btn2 = Ti.UI.createButton({
        top: 150,
        title: 'Click 2',
        height: 50,
        width: 150,
        zIndex: 100,
});
btn2.addEventListener('click', function(){
        alert('click 2');
});
viewA.add(btn2);

var viewB = Ti.UI.createView({
        top: 120,
        zIndex: 20,
        borderWidth: 1,
        borderColor: '#0000FF',
        // backgroundColor: '#0000FF',
        // opacity: 0.5
});

win.add(viewA);
win.add(viewB);


win.open();
var win = Titanium.UI.createWindow({  
    backgroundColor:'#fff'
});

var viewA = Ti.UI.createView({
        backgroundColor: '#DDD',
});

var btn1 = Ti.UI.createButton({
        top: 50,
        title: 'Click 1',
        height: 50,
        width: 150,
        zIndex: 100,
});
btn1.addEventListener('click', function(){
        alert('click 1');
});
viewA.add(btn1);


var btn2 = Ti.UI.createButton({
        top: 150,
        title: 'Click 2',
        height: 50,
        width: 150,
        zIndex: 100,
});
btn2.addEventListener('click', function(){
        alert('click 2');
});
viewA.add(btn2);

var viewB = Ti.UI.createView({
        top: 120,
        zIndex: 20,
        borderWidth: 1,
        borderColor: '#0000FF',
        // backgroundColor: '#0000FF',
        // opacity: 0.5
});

win.add(viewA);
win.add(viewB);


win.open(
);

4

1 に答える 1