0

现在我有一个带有滑动菜单的应用程序。主窗口有一个视图,即“主体视图”。当用户从滑动菜单中选择一个项目时,它会更改将哪个视图添加到主体视图。这是索引的 .xml:

    <Alloy>
    <Window class="container">
        <View id="menuview">
            <View id="menuheaderview">
                <Label id="menuheaderlabel">Menu</Label>
            </View>
            <View id="menubodyview">
                <TableView id="menutableview" onClick="select">
                    <TableViewRow class="menurowview">
                        <Label class="menulabel">News</Label>
                    </TableViewRow>
                    <TableViewRow class="menurowview">
                        <Label class="menulabel">Calendar</Label>
                    </TableViewRow>
                    <TableViewRow class="menurowview">
                        <Label class="menulabel">Homework</Label>
                    </TableViewRow>
                    <TableViewRow class="menurowview">
                        <Label class="menulabel">Classes</Label>
                    </TableViewRow>
                    <TableViewRow class="menurowview">
                        <Label class="menulabel">Information</Label>
                    </TableViewRow>
                    <TableViewRow class="menurowview">
                        <Label class="menulabel">Help</Label>
                    </TableViewRow>
                </TableView>
            </View> 
        </View>

        <View id="mainview">
            <View id="mainheaderview">
                <Button id="menubutton" onClick="showhidemenu"/>
                <Label id="mainheaderlabel">News</Label>
                <Button id="addbutton" />
            </View>
            <View id="mainbodyview" ></View>
        </View>

    </Window>
</Alloy>

和控制器:

var menuOpen = false;
function showhidemenu(e) {
    if (menuOpen) {
        moveTo = "0";
        menuOpen = false;
    } else {
        moveTo = "35%";
        menuOpen = true;
    }

    $.mainview.width = Ti.Platform.displayCaps.platformWidth;
    $.mainview.animate({
        left : moveTo,
        curve : Ti.UI.ANIMATION_CURVE_EASE_OUT,
        duration : 300
    });
};

function select(e) {

    for (var i = 0; i < e.section.rows.length; i++) {
        e.section.rows[i].backgroundColor = '#212429';
    }

    var selectedRow = e.row;
    selectedRow.backgroundColor = 'yellow';
    if ($.mainbodyview.children.length) {
        $.mainbodyview.removeAllChildren();
    }
    //*************add your view here*******************
    if (selectedRow.children[0].text == 'News') {
        $.mainheaderlabel.setText('News');
        $.addbutton.visible = false;
        $.mainbodyview.add(Alloy.createController('news').getView());
    } else if (selectedRow.children[0].text == 'Homework') {
        $.mainheaderlabel.setText('Homework');
        $.addbutton.visible = true;
        $.mainbodyview.add(Alloy.createController('homework').getView());
    } else if (selectedRow.children[0].text == 'Information') {
        $.mainheaderlabel.setText('Information');
        $.addbutton.visible = false;
        $.mainbodyview.add(new Alloy.createController('information').getView());
    } else if (selectedRow.children[0].text == 'Calendar') {
        $.mainheaderlabel.setText('Calendar');
        $.addbutton.visible = false;
        //$.mainbodyview.add(Alloy.createController('calendar').getView());
    } else if (selectedRow.children[0].text == 'Classes') {
        $.mainheaderlabel.setText('Classes');
        $.addbutton.visible = false;
        //$.mainbodyview.add(Alloy.createController('classes').getView());
    } else if (selectedRow.children[0].text == 'Help') {
        $.mainheaderlabel.setText('Help');
        $.addbutton.visible = false;
        $.mainbodyview.add(Alloy.createController('help').getView());
    } else {

    }
    //**************************************************
    showhidemenu();
};


$.index.open();
$.mainbodyview.add(Alloy.createController('news').getView());

在 IOS 上被破坏的代码部分是 $.mainbodyview.add(Alloy.createController('news').getView()); 和类似的。它在 Android 上完美运行。为了兼容IOS,我有什么遗漏吗?

4

1 回答 1

0

我也遇到了同样的问题。我之前使用的是窗口标签,它在 Android 上运行良好,但不适用于 iPhone,但后来我在视图中将我的“窗口”标签更改为“视图”标签。它开始适用于 Android 和 iPhone。

于 2014-06-06T06:47:27.313 回答