0

Cocoaは初めてですが、CALayerの座標系を変更する方法を知りたいです。Core Animationプログラミングガイドの「レイヤージオメトリと変換」の記事を読みましたが、それでも実用的なアドバイスが必要です。

デフォルトの座標系では、左下隅に(0,0)があります。これをレイヤーの中央に変更したいと思います。それは可能ですか?

私が試したこと:レイヤーのフレームのMidXおよびMidYへのsublayerTransformとしてCATransform3DTranslateを使用すると、サブレイヤーが適切な場所に表示されます。setFrameSizeイベントで、変換を再計算して再度適用する必要があります。自動更新(「ステップ」なし)が必要です。

または、kCAConstraintMidXを使用してサブレイヤーMidXをレイヤーMidXに関連付け、オフセットを使用する必要がありますか?実際、私はサブレイヤーとしてCATextLayersを使用しており、テキストを中央に揃えたいので、テキストの中心をスーパーレイヤーの中心に対して相対的に配置します。これを試しましたが、スーパーレイヤーのサイズを変更しても自動的に更新されないようです。

4

1 に答える 1

1

これを行うoalTouchと呼ばれるAppleサンプルコードをチェックしてください。

// Convert the view point to our layer / sound stage coordinate system, which is centered at (0,0)
CGPoint pointInLayer = CGPointMake(pointInView.x - [self frame].size.width / 2., pointInView.y - [self frame].size.height / 2.);
于 2009-06-09T19:17:14.997 に答える