Mazyod
Mazyod

Reputation: 22559

Cocoa: [self.view setWantsLayer:YES] brings that view above other subviews?

Simply, I have an NSView with a bunch of subviews. In the awakeFromNib method (inside the view's controller), I decided to add the following:

[_backgroundImageView setWantsLayer:YES];
[[_backgroundImageView layer] setShadowOpacity:1.0f];
[[_backgroundImageView layer] setShadowOffset:NSMakeSize(-3, -3)];

The backgroundImageView is at the back of all the subviews. But, when I added the previous code, it draws the shadow correctly, but also draws the backgroundImageView above all other layers. Why? How I can Fix that?

Upvotes: 2

Views: 2508

Answers (1)

Mazyod
Mazyod

Reputation: 22559

You need setWantsLayer:YES in code for the superview.

Turn's out I should enable the layer for the superview (self.view), too. Not only that, but I should tighten up the imageView's frame, or else it will be scaled "axis independently" even though it is set to "Proportional up or down".

Upvotes: 7

Related Questions