これはトリッキーです!
ビューAとビューAのサブビューであるビューBがあります。両方のビューのフレームは一定です。
変換行列を変更してビュー A を回転させます。
viewA.transform = CGAffineTransformMakeRotation(angle);
ここで、ビュー B の変換マトリックスを調整して、視覚的な位置と回転が同じままになるようにします。つまり、A の回転角度を変更しながら B を移動/回転させてはなりません。
明らかに、ビュー B を反対方向に回転させる必要がありますが、それだけでは十分ではありません。
私はこれを試しましたが、Bはまだぐらつきます:
viewB.transform = CGAffineTransformTranslate(CGAffineTransformMakeRotation(-angle), viewA.bounds.size.width, viewA.bounds.size.height);
たぶん、正しい行列はviewBのフレームにも依存します...サインとコサインを使用する必要があるかもしれません...?
単純に B を A の兄弟ビューにすることもできますが、そうしたくありません。