2011-12-31 7 views
0

次のように私はレイヤーを設定している:CGPatternイメージの背景色をCALayerの中央に固定することはできますか?

CALayer *layer = [CALayer layer]; 
layer = /* create a CGColorRef with a pattern image */; 

この層は単に私のウィンドウに表示されます。

void drawPattern(void *info, CGContextRef c) { 
    CGContextDrawImage(c, CGRectMake(0, 0, CGImageGetWidth(info), CGImageGetHeight(info)), info); 
} 
void releaseInfo(void *info) { 
    CGImageRelease((CGImageRef)info); 
} 

デフォルトでは、パターンは、ウィンドウの左下隅に固定されて、私は、ウィンドウのサイズを変更するときに、そのポイントが固定されている次のようなパターンのための私のドロー/解除機能があります。私は二つのステップで左上隅でそれを固定できることを考え出し

  • CGPatternCreate代わりのCGAffineTransformIdentityの引数としてlayer.geometryFlipped = YES;
  • 使用CGAffineTransformMakeScale(1, -1)を設定します。

どのように私は中心にそれを固定することができますか? (層のanchorPointは何もしていないよう変更。)

答えて

1

私はあなたがinfoパラメータとして、層ではなく、画像に合格する必要がありますと思うし、自分の描画機能は、層のframeを取得していることを使用してい適用する翻訳を計算する。

関連する問題