Найпростіше рішення - використовувати неявні анімації. Це допоможе вирішити всі ці проблеми для вас:
self.layer?.backgroundColor = NSColor.red.cgColor;
Якщо ви хочете налаштувати, наприклад, тривалість, ви можете використовувати NSAnimationContext
:
NSAnimationContext.beginGrouping();
NSAnimationContext.current.duration = 0.5;
self.layer?.backgroundColor = NSColor.red.cgColor;
NSAnimationContext.endGrouping();
Примітка. Це тестується лише на macOS.
Я спочатку не бачив жодної анімації, коли це робив. Проблема полягає в тому, що шар шару, який підтримується переглядом, не неявно оживляє. Щоб вирішити це, переконайтеся, що ви додали шар самостійно (перед тим, як встановити вигляд на захищений шаром).
Приклад, як це зробити:
override func awakeFromNib() {
self.layer = CALayer();
//self.wantsLayer = true;
}
Використання self.wantsLayer
не змінило мого тестування, але це може мати деякі побічні ефекти, про які я не знаю.
.presentation()
щоб отримати "остаточне, побачене" значення. Знайдіть правильні відповіді нижче, в яких поясніть, що це зроблено з презентаційним шаром.