0

別のアンカー ポイントを中心に UIView を回転させようとしています。最初に UIView を作成するとき、アンカー ポイントを (0.0, 0.5) に設定しました。CGAffineTransformMakeRotation を使用してビューを回転させます。UIView の反対側をクリックすると、アンカー ポイントを (1.0, 0.5) に設定したいと考えています。これにより、UIView が移動し、アンカー ポイントが中心点に設定されます。私はこれを行うべきであるという他の答えを読みました:「境界の幅と高さに古いアンカーポイントと新しいアンカーポイントの正規化された値を掛け、2つのアンカーポイントの差を取り、その差をレイヤーの位置に適用します」

私はそれを試しましたが、UIView をまったく同じ位置に設定することはできません。このコードの使用:

self.transform = CGAffineTransformTranslate(self.transform, self.bounds.size.width, 0);

まったく同じ位置に設定しますが。もう一度回転すると (新しいアンカー ポイントを中心に回転するはずです)、UIView が反転するか、奇妙なことが起こります。

4

1 に答える 1

1

アンカー ポイントの変更によりビューを再配置する場合は、transformプロパティを使用しないようにしてください。代わりに、frameプロパティまたはプロパティを使用してビューを移動しますcenter(またはposition、CALayer オブジェクトを操作している場合)。また、ビューを正確に回転させる方法を示すコードをさらに投稿できますか?

于 2011-03-11T19:40:26.883 に答える