5

ラベルと画像を持つ単純なカスタム NSView があります。現在、ビューは非常にうまく機能します (すべての親指は私のカスタム ビューのインスタンスです)。

ここに画像の説明を入力

ただし、これらのサムネイルの不透明度を設定したいと思います。そのままでは設定が効きviewInstance.layer.opacityません。最初にどこかで使用し、不透明度を設定すると、テキストの不透明度が変わります (正しく表示されます) が、画像ビューは完全に消えます:layernil[viewInstance setWantsLayer:YES]

ここに画像の説明を入力

setWantsLayer:最初にレイヤーを作成して割り当て、この質問を読んだ後に呼び出してみました: Mac OS X で NSView に CALayer を追加する方法ですが、何も変わりませんでした:

CALayer *selfLayer = [[CALayer alloc] init];
[selfLayer setFrame:CGRectMake(0, 0, 100, 100)];
[self setLayer:selfLayer];
[self setWantsLayer:YES];

レイヤーを作成し、画像ビューにも表示するすべての組み合わせを試しました( を呼び出しsetWantsLayer:、レイヤーを作成してから割り当て、そのdisplayメソッドを呼び出すだけです)、それでも何も変わりません:

[self addSubview:self.imageView];
CALayer *imageLayer = [[CALayer alloc] init];
[imageLayer setFrame:CGRectMake(0, 0, 100, 100)];
[self.imageView setLayer:imageLayer];
[self.imageView setWantsLayer:YES];

画像ビューのレイヤーをメイン ビューのサブレイヤーとして追加してから表示しようとしました。

[self.layer addSublayer:self.imageView.layer];
[self.imageView.layer display];
[self.layer display];

それでも、画像は表示されませんが、テキストは常に正しく表示されます。レイヤーの割り当てと要求に関するコードをコメントアウトすると、画像が再び表示されますが、明らかに、レイヤーの不透明度は使用できません。OS X SDK 10.8 を搭載した OS X Mavericks を使用しています。私は何を間違っていますか?

更新:レイヤーのプロパティを設定することで、完全に削除し、レイヤーに直接NSImageView描画することになりました。ただし、これはこのプロジェクトで私の問題を解決した別のアプローチにすぎず、元の質問にはまだ答えていません。NSImagecontents

4

1 に答える 1