Moving TableView

今日はTitaniumのTableViewがビヨンビヨンするお話。

多分Titanium Mobileを触って、TableViewがあまりに簡単に出来て驚いたエンジニアは、何気なくスクロールして見て唖然とすると思うんですよね。

あれ、このTableView単独でビヨンビヨンするんだけど…

何も工夫をしないと、TableViewはそりゃもうあらぶります。ほかのパーツを動かないまま、一人だけ自分の世界へスクロールっちゃうのです。

エンジニアはそれを鎮めるためにAppceleratorのサイトでプロパティを調べます。あった、movingプロパティ!これをfalseにして…

あれ、何も変わらん。

とまぁ、途方にくれた時期が私にもありました。

結論から言いますと、どうやらTableViewはScrollViewを継承してるようなのです。なので、親玉のScrollViewを作ってから、その上に設置してやれば、ScrollView全体が一緒にスクロールします。
推測ですけど、親の方にイベントが吸われちゃうんでしょうね。

注意すべきなのは、親玉のheightが足りなくてスクロールが発生しないとき、TableViewはまたもや暴れ始めます。

NavBarが出てる時は、親玉のheightを370にしてやるとちょうどいい。
高さが可変な時は、'auto'にしておいてheightプロパティが370以下だったら370まで引き上げる…としようとしても、値を参照したら'auto'が返ってくるので、素直に中身の高さを把握しておいて、条件分岐しましょう。