2012-04-05 14 views
1

CALayerに画像を描画しようとしています。私は画像のみを必要とするので、次のように私は後で私が作成されました:CALayerの位置左下のコンテンツ

CALayer *layer = [CALayer layer]; 

次のように私は私の画像を追加します。

NSImage *img = [[NSImage alloc] initWithContentsOfFile:@"path/to/img.png"]; 
[layer setContents:img]; 

は、これは動作します、しかし、全体の親フレームを埋めるために私の画像を描画します(プロセスで私のイメージを伸ばす)。

[layer setContentsGravity:@"kCAGravityBottomLeft"]; 

私は親フレームの左下に私の画像を描画しようとしています、しかし、関係なく、私は何をすべきか、それが下の中央に自分のアイコンを描画しない:

は、ドキュメントを読んで、私は次を発見しました。とにかく、左下を指定する必要はありますか?

+0

レイヤーのフレームサイズをイメージのサイズと正確に一致させるにはどうすればよいでしょうか?ストレッチを再開し、UIViewの 'sizeToFit'と' sizeThatFits'をチェックしてください。しかし、私はイメージではあまり働かなかったので、これはほとんど推測です。 – Wienke

+0

@Wienkeが最初にそれを試してみたところ、画像の下部中央に残っていることが強く思われる。 – Julio

答えて

0

このお試しください:kCAGravityBottomLeftNSStringとして宣言され、contentsプロパティがCGImageRefを期待していること

CALayer *layer = [CALayer layer]; 
layer.contentsGravity = kCAGravityBottomLeft; 
layer.contents = (id) aCGImageRef; 

注意を。

+0

これは機能しますが、私がすでに行ったことを達成するだけです。それは問題です。 – Julio

+0

イメージは_layer_の境界線かレイヤーの_superlayer_の境界線で描画しますか?後者の場合は、スーパーレイヤのサイズを変更するたびにレイヤのフレームをスーパーレイヤの境界に設定します。これは、自動サイズ変更マスクを設定できるので、NSViewsで簡単です。 – Costique

関連する問題