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'が返ってくるので、素直に中身の高さを把握しておいて、条件分岐しましょう。