2009-08-10 12 views
0

それは静かな複雑です。私は4つのUIViewを持っています。3つのビュー間で座標系を変換する簡単な方法は?

viewAはルートコンテナとして機能します。 viewBとviewCはviewAの子です。 したがって、viewAにはviewBとviewCが含まれています。

viewDはビューBの子です。

私はあなたのためにそれを "描く" ことを試みる:

viewA OWNS ((viewB OWNS viewD) && viewC) 

私はviewBの層のtransform.rotation.zを回転させます。したがって、viewBは少し回転します。 ViewDはviewBに比べて少し回転しています。

また、viewCも他の値と同じように回転します。したがって、viewBとviewCの両方は、viewAに対して相対的に回転が異なります。 viewDはviewBに対して少し回転します。

viewCの回転をviewDを基準にして指定できるように、これらの座標系をすべて変換する必要があります。つまり、viewCのtransform.rotation.zがviewDと同じ場合、両方のビューが同じように(画面上で視覚的に)回転しているように見えます。

数週間前、私はUIKitが座標系の変換をサポートしていることをいくつかの論文で読んでいました。彼らはこの問題を解決するのに適しているかどうか?

答えて

0

viewDのトランスフォームをviewBから独立させたいと思うようですね?もしそうなら、viewDをviewAのサブビューにします(viewBより後の兄弟であれば、その上に表示されます)。

+0

私はviewBを回転させると、viewDはまったく同じ方法で遅れなく回転する必要があります。そのため、viewDはviewBのサブビューです。私は、異なる回転を伴うviewDの5つの「コピー」があることに言及しなかった。しかし、それらのすべてはviewBと一緒に回転しなければなりません。 –

+0

viewBを回転するとviewDの回転につながる場合、viewCの回転とviewDの回転を等しくしたいので、viewCを回転させる必要もあります。あるいは私は誤解していますか? – hatfinch

関連する問題