0
Thumbsup

いい質問だ

0

Thumbsdown

うーん

iPhoneのtabGroupの画面遷移アニメーションが途中で止まって画面が切り替わるバグ

araky
araky 0

投稿日:2014-12-17 23:38:56

tabGroupを使った画面遷移のとき、デフォルトでは画面が右から左にスライドし画面が切り替わりますが、そのアニメーションが右から左に少しスライドし、途中で止まり画面が切り替わります。

tabGroup.activeTab.open(detailWindow);

以前、同じ方法で作ったときは右から左に画面がスムーズに最後までアニメーションしたのですが、今回のアプリでは同じソースコードを使っても同じ現象が起こります。

Titanium.UI.iOS.NavigationWindowによる画面遷移も試みたのですが、同じように途中でアニメーションが止まります。

どなたか解決方法をご存知の方がおりましたら是非教えて下さい。
もしくは、別の方法でこの現象を回避できるようでしたら、教えてください。

バージョン: 3.4.0, 3.4.1
OS: iOS


再現するコードはありますか? --- yagi_


回答

zam
zam
60

Thumbsup

いい回答

1

Thumbsdown

うーん



似たようなところをやっていたので…
TitaniumSDK3.4.0です。
自分の環境では問題なさそうでしたが……

以下のコードを試しても無理ですかね?
サンプル引っこ抜いただけなので汚くてごめんなさい

app.js

var self = Titanium.UI.createTabGroup({});

    var window1 = require('sampleView1');
    var win1 = new window1("WINDOW1");
    var tab1 = Titanium.UI.createTab({
        window:win1,
        titleid: 'sample1'
    });
    win1.activeTab = tab1;

    self.addTab(tab1);
    self.open();

sampleView1.js

function sampleView(title) {
      var self = Ti.UI.createWindow({
        title:title,
        backgroundColor:'white'
      });
      var table = Ti.UI.createTableView({
        top: 0,
        data: [{title: "アニメーションするよ"}]
      });
      self.add(table);

      table.addEventListener('click', function(e){
            self.activeTab.open(self2);
       });

       var self2 = Ti.UI.createWindow({
        title:title,
        backgroundColor:'white'
      });

      self2.addEventListener('focus', function(){
         alert("アニメーションできた?");
      });

      return self;
}
module.exports = sampleView;

試したところ、問題なくアニメーション致しました。 基本的には同じ構成のはずなのですが、何が問題だったかはわかりませんでした。 とりあえずできたのでこちらのソースコードを参考に組みなおしてみます。 本当にありがとうございます! --- araky

原因が分かったので、記載しておきます。 呼び出したdetailWindowがwindowの生成だけで、windowの上に何もaddされていなかったためにおきた現象のようでした。 ケアレスミスでした。 お恥ずかしい限りです。 --- araky

ログインすると回答することができます。