2

Titanium for iPhone では、ナビゲーション バーの上に何かを表示することはできますか?それとも、ナビゲーション バーの常にトップのプロパティを無効にするだけですか?

これが今の様子です: アプリの実際の状態

これは実際の Photoshop モックアップの一部ですPhotoshop-モックアップ

これを呼び出すコード スニペットは次のとおりです。

var win1 = Titanium.UI.createWindow({
        title: 'Home',
        navBarHidden: false,
        barImage: 'topbar.png',
        backgroundImage: 'bga.png'
});
c = Titanium.UI.createImageView({
        image: 'logobar.png',
        top: -13,
        right: 7,
        width: 74,
        height: 108,
        exitOnClose: !0
})
try {
        win1.add(c);
        c.animate({zIndex:3});
        win1.addEventListener('focus', function () {
                Titanium.App.Analytics.trackPageview('/win1')
        });
}catch(e){
        alert(e);
}

.animate の存在を信用していなかったので、try-catch が実装されましたが、存在していましたが機能しませんでした。

4

1 に答える 1

2

回答(または、そうあるべきではないかもしれません)

Titanium 自体は、zIndex または onTop プロパティを操作する機能をサポートしていません。ただし、オーバーレイを表示できるようにする回避策を見つけました。

スクリーンショット: どのように見えるか

この回避策は、Titanium がウィンドウを処理する方法によって機能します。まず、メイン ウィンドウ (例: win1) を定義し、それを塗りつぶします。次に、アシスタント ウィンドウ (win1a など) を作成し、それに ImageView を割り当てます。次に、新しいウィンドウを別のウィンドウの上に配置します。

    var win1 = Titanium.UI.createWindow({
            title: "*******",
            navBarHidden: false,
            barImage: 'topbar.png',
            backgroundColor: "gray",
    });
    var win1l = Titanium.UI.createWindow({
            title: "",
            navBarHidden: true,
            height: 84,
            width: 64,
            right: 0,
            top: 0
    });
// Inject ImageView into top-most window
    win1l.add(Titanium.UI.createImageView({
            image: "logobar.png",
            top: 2,
            right: 5,
            width: 60.3, //74, // 74/108 = 0.6851851852
            height: 88, //108, // ((108-20)*(74/108)) = 60.29629 ~ 60.3
            exitOnClose: !0
    }));
    win1l.open();

これがお役に立てば幸いです。

ありがとう、-ケナン。

于 2012-05-27T00:25:45.210 に答える