3

固定点を中心に UIView を回転させる必要があります。

bubbleTail = [[BubbleTail alloc] initWithFrame:bubbleTailFrame];
[self addSubview:bubbleTail];
bubbleTail.layer.anchorPoint = triangle_top_left;
CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI * 180 / 180.0);
bubbleTail.transform = transform;

これは、.anchorPoint 行にコメントを付けた場合にのみ機能します。ビュー内のポイントを中心にビューを回転するにはどうすればよいですか?

4

2 に答える 2

0

ビューのCGAffineTransformMakeRotation周りを回転させているようですか?center

ビューにポイントP (px,py)があり、ビューをその周りに回転させたいとします。= - = (px - centerx, py - centery) とし
ましょう。 そして、あなたは角度を持っています。A(ax,ay)Pcenter
alpha

次に、 で変換行列を作成し- A、 で回転行列を掛けてから、alphaで変換行列を掛けることができ+ Aます。

必要な関数は、 CGAffineTransformMakeTranslationCGAffineTransformMakeRotationCGAffineTransformConcatです。

PSこれが機能するかどうかはわかりません(また、ビューrectがどのように表現されるかもわかりません。中心を中心とした回転に関する最初の仮定が間違っている可能性があります。次に、A = Pと仮定する必要があります)が、それがアフィン変換で行われる方法です。

于 2013-05-23T07:25:18.303 に答える