今日はモーションセンサーを視覚化しました。
| .gravity | … | 重力の方向 |
| .attitude | … | 端末の角度 |
| .userAcceleration | … | 移動する勢い |
| .rotationRate | … | 回転する速さ |
角度と勢い(加速度)と速さ(角速度)がこんがらがりそうでしたが、
グラフで表示しながら実機を動かすとよくわかりました。
このうち端末の姿勢を示す .attitude(.pitchと.rollと.yaw)は、
(この動画のように)画面を起てた状態からはうまく検出できないようです![]()
具体的には、
.pitchは、Landscapeの姿勢での検出が苦手
.rollは、Portraitの姿勢での検出が苦手
.yawは、寝かせた姿勢でないと検出が苦手
でした。
つまり例えば、Landscapeで車のステアリングのように操作したい場合は、
.attitude.yawでは正しい角度はわかりません![]()
![]()
![]()
.gravity(のxとy)から算出すればよさそうです。
今回はその他に、ピッカービュー、アウトレットコレクションを使いました。
ピッカービューは結構スペースを食うインターフェースだなと思いました![]()
そこで、使うときだけ画面に出てくるようにしましたが、
非表示ではタップイベントが発生しないので、下のビューから受け取っています。
アウトレットコレクションは初めは「これ便利!」と思ったのですが、
配列に入る順番は決まっていないので、注意しなければなりません。
InterfaceBuilderのための仕組みなので、コードで生成・保持するなら不要です。