Какао: [self.view setWantsLayer: YES] ставит это представление над другими подпредставлениями? - PullRequest
1 голос
/ 22 марта 2012

Просто у меня есть NSView с кучей подпредставлений. В методе awakeFromNib (внутри контроллера представления) я решил добавить следующее:

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

backgroundImageView находится позади всех подпредставлений. Но когда я добавил предыдущий код, он правильно рисует тень, но также рисует backgroundImageView над всеми другими слоями. Зачем? Как я могу это исправить?

1 Ответ

6 голосов
/ 22 марта 2012

Хорошо, пока я рвал на себе волосы, к счастью, я нашел решение, прежде чем оторвать самые последние волосы.

Использовать конструктор интерфейса (или просто setWantsLayer: в коде для суперпредставления).

Я открыл файл пера в Xcode и поиграл со свойством слоя imageView. Оказалось, я должен включить слой для суперпредставления (self.view) тоже. Не только это, но я должен сжать кадр imageView, иначе он будет масштабирован «независимо от оси», даже если он установлен «Пропорционально вверх или вниз».

Мир ...

...