ラベルと画像を持つ単純なカスタム NSView があります。現在、ビューは非常にうまく機能します (すべての親指は私のカスタム ビューのインスタンスです)。
ただし、これらのサムネイルの不透明度を設定したいと思います。そのままでは設定が効きviewInstance.layer.opacity
ません。最初にどこかで使用し、不透明度を設定すると、テキストの不透明度が変わります (正しく表示されます) が、画像ビューは完全に消えます:layer
nil
[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
描画することになりました。ただし、これはこのプロジェクトで私の問題を解決した別のアプローチにすぎず、元の質問にはまだ答えていません。NSImage
contents