5

UIImageView のアンカー ポイントに (十字などの) マークを付ける簡単な方法はありますか? いくつかの回転する画像をアンカー ポイントで並べようとしていますが、これらのポイントを確認できると作業がはるかに簡単になります。

どうもありがとう。

4

1 に答える 1

8

ビュー内でアンカーポイントを視覚化する方法を尋ねていますが、アンカーポイントの位置合わせを支援できるように求めているようです。両方の質問に答えてみます。

アンカーポイントの視覚化。

iOS のすべてのビューには、アンカー ポイントを持つ下層のレイヤーがあります。アンカー ポイントは、レイヤーの単位座標空間にあります (x と y は 0 から 1 になります)。これは、x に幅を、y に高さを掛けて、ビュー/レイヤーの座標空間でレイヤー内のアンカー ポイントの位置を取得できることを意味します。次に、そこにサブビュー/サブレイヤーを配置して、アンカー ポイントの位置を表示できます。

コードでは、アンカー ポイントがある場所に小さな黒い点を表示するために、次のようなことを行うことができます。

CALayer *anchorPointLayer = [CALayer layer];
anchorPointLayer.backgroundColor = [UIColor blackColor].CGColor;
anchorPointLayer.bounds = CGRectMake(0, 0, 6, 6);
anchorPointLayer.cornerRadius = 3;

CGPoint anchor = viewWithVisibleAnchorPoint.layer.anchorPoint;
CGSize  size   = viewWithVisibleAnchorPoint.layer.bounds.size;

anchorPointLayer.position = CGPointMake(anchor.x * size.width,
                                        anchor.y * size.height);
[viewWithVisibleAnchorPoint.layer addSublayer:anchorPointLayer];

下の画像で、4 つの異なる回転の結果を確認できます。

アンカーポイントを中心に回転したビュー

アンカーポイントによるレイヤーの整列

それは素晴らしいことですが、実際にはアンカーポイントを揃えるよりも簡単です。

重要なトリックは、positionanchorPoint常に同じ点であり、2 つの異なる座標空間にあることです。位置はスーパーレイヤーの座標空間で指定します。アンカーポイントは、レイヤーの単位座標空間で指定されます。

これの良いところは、プロパティが整列されているビューpositionは自動的に整列されることanchorPointです。コンテンツはアンカー ポイントを基準にして描画されることに注意してください。以下は、すべてが同じ y コンポーネントを持っているビューの束の例ですposition

これを行うための特別なコードは実際にはありません。positionプロパティが揃っていることを確認してください。

アンカー ポイントで整列された複数のビュー。

于 2013-07-16T10:19:31.363 に答える