无法限制LeftNavButton和RightNavButton区域外的click事件侦听器?

时间:2016-02-10 09:52:47

标签: ios appcelerator appcelerator-titanium appcelerator-alloy

我在appcelerator工作室创建了一个样本合金应用程序。 当我点击外部按钮(图像)时,也会执行事件。 如何限制click事件,如果我在LeftNavButton或RightNavButton之外执行事件。 可以帮助我。

signIn.js

$.signInWin.addEventListener('open', function() {

        Ti.API.info('signInWin open');

        var titleLabel = Ti.UI.createLabel({ text: 'Log In', width: Ti.UI.SIZE});
        $.signInWin.setTitleControl(titleLabel);

        var leftButton = Titanium.UI.createButton({
            backgroundImage : '/left_arrow.png'
        });
        $.signInWin.setLeftNavButton(leftButton);

        var rightButton = Titanium.UI.createButton({
            backgroundImage : '/right_arrow.png'
        });
        $.signInWin.setRightNavButton(rightButton);

        leftButton.addEventListener('click', function(e) {
            Ti.API.info(' event performed on left button');

        });

        rightButton.addEventListener('click', function(e) {
            Ti.API.info(' event performed on right button');

        });
});

signIn.tss:

"#signInWin":{
    backgroundColor: '#ffffff',

}
"#signInNav":{
    backgroundColor: '#00a2f7',

}

signIn.xml:

<Alloy>
    <NavigationWindow id="signInNav" platform="ios">
        <Window id="signInWin">

        </Window> 
    </NavigationWindow>
</Alloy>

示例屏幕视图

enter image description here

1 个答案:

答案 0 :(得分:2)

rightNavButton / leftNavButton的可点击区域将按钮本身延伸几个像素。这是iOS的本机行为。要解决此问题,您可以将按钮包含在具有固定Ti.UI.View的{​​{1}}内。这应该很容易解决你的问题!