2009-06-03 9 views
0

座標私はココアに非常に新しいんだけど、CALayerのの座標系を変更する方法を知っていただきたいと思います。 Core Animation Programming Guideの記事Layer Geometry and Transformsを読んでいますが、まだ実用的なアドバイスが必要です。CALayerのは、システム

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

:レイヤーのフレームのMIDXとMidYにsublayerTransformとしてCATransform3DTranslateを使用しては、副層は、適切な場所に表示されます。 setFrameSizeイベントで、変換を再計算して再度適用します。私はむしろ自動リフレッシュ(「ステップ」なし)が好きです。

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

答えて

2

これを行い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.);