Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在三个视图之间转换坐标系的简单方法?_Iphone - Fatal编程技术网

Iphone 在三个视图之间转换坐标系的简单方法?

Iphone 在三个视图之间转换坐标系的简单方法?,iphone,Iphone,这很复杂。我有四种观点 viewA充当根容器。viewB和viewC是viewA的孩子。 因此,viewA包含viewB和viewC viewD是viewB的子级 我试着为你画: viewA OWNS ((viewB OWNS viewD) && viewC) 我旋转图层的transform.rotation.z视图B。所以viewB稍微旋转了一下。ViewD也会相对于viewB稍微旋转一点 此外,我使用其他值以相同的方式旋转viewC。因此,viewB和viewC相对于vie

这很复杂。我有四种观点

viewA充当根容器。viewB和viewC是viewA的孩子。 因此,viewA包含viewB和viewC

viewD是viewB的子级

我试着为你画:

viewA OWNS ((viewB OWNS viewD) && viewC)
我旋转图层的transform.rotation.z视图B。所以viewB稍微旋转了一下。ViewD也会相对于viewB稍微旋转一点

此外,我使用其他值以相同的方式旋转viewC。因此,viewB和viewC相对于viewA的旋转方式不同。viewD相对于viewB稍微旋转一点

我需要以这样一种方式转换所有这些坐标系,即可以指定viewC相对于viewD的旋转。或者换句话说,当viewC的transform.rotation.z与viewD的transform.rotation.z相同时,两个视图在屏幕上的视觉旋转方式似乎相同


几周前,我在一篇论文中读到UIKit提供了坐标系转换的支持。你知道他们是否适合解决这个问题吗?

听起来你希望viewD的转换独立于viewB?如果是这样,请将viewD设置为viewA的子视图。如果它是viewB之后的同级视图,则它将显示在它的顶部。

这很好,但当我旋转viewB时,viewD必须以完全相同的方式旋转,且不会延迟。这就是为什么viewD是viewB的子视图。我没有提到viewD有5个不同旋转的副本。但它们都必须与viewB一起旋转。如果旋转viewB将导致viewD旋转,那么也必须导致viewC旋转,因为您希望viewC的旋转和viewD的旋转相等。还是我误解了?