UIImageView のアンカー ポイントに (十字などの) マークを付ける簡単な方法はありますか? いくつかの回転する画像をアンカー ポイントで並べようとしていますが、これらのポイントを確認できると作業がはるかに簡単になります。
どうもありがとう。
UIImageView のアンカー ポイントに (十字などの) マークを付ける簡単な方法はありますか? いくつかの回転する画像をアンカー ポイントで並べようとしていますが、これらのポイントを確認できると作業がはるかに簡単になります。
どうもありがとう。
ビュー内でアンカーポイントを視覚化する方法を尋ねていますが、アンカーポイントの位置合わせを支援できるように求めているようです。両方の質問に答えてみます。
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 つの異なる回転の結果を確認できます。
それは素晴らしいことですが、実際にはアンカーポイントを揃えるよりも簡単です。
重要なトリックは、position
とanchorPoint
が常に同じ点であり、2 つの異なる座標空間にあることです。位置はスーパーレイヤーの座標空間で指定します。アンカーポイントは、レイヤーの単位座標空間で指定されます。
これの良いところは、プロパティが整列されているビューposition
は自動的に整列されることanchorPoint
です。コンテンツはアンカー ポイントを基準にして描画されることに注意してください。以下は、すべてが同じ y コンポーネントを持っているビューの束の例ですposition
。
これを行うための特別なコードは実際にはありません。position
プロパティが揃っていることを確認してください。