Какова связь между NSAppearance, NSEffectView.Material и "Vibrancy"
Как и в названии вопроса, какова связь между NSAppearance
, NSEffectView.Material
а "вибрация"? В результате экспериментов я обнаружил, что для некоторых материалов выбор NSAppearance
может изменить внешний вид материала (например, NSEffectView.Material.titlebar
будет светлым или темным в зависимости от активного NSAppearance
), в то время как другие материалы (например, .light
Кажется, мне все равно.
Я подозреваю, что такие материалы, как .titlebar
являются прокси, которые выбирают из .dark
, .ultradark
, .light
, а также .mediumLight
в зависимости от NSAppearance
но тогда это, казалось бы, роль .appearanceBased
, Я также вижу в описании для NSAppearance.Name.vibrantLight
...
Это должно быть установлено только для NSVisualEffectView или одного из его подпредставлений.
... что несколько противоречит утверждению NSEffectView
документация...
Эффективный вид представления должен обеспечивать вибрацию... в большинстве случаев вы устанавливаете внешний вид в окне или в представлении визуальных эффектов - тогда подвиды наследуют внешний вид.
... предполагая, что это может быть правильно установить vibrantLight
как NSAppearance
всего окна (если это тот вид, который вы хотели).
Наконец, я не понимаю, что такое "вибрация"; если бы кто-то мог это объяснить, это было бы здорово.
1 ответ
Таким образом, NSAppearance обычно описывает стили элементов управления, цветов и т. Д. Для иерархии представления, с которой настроен внешний вид.
NSVisualEffectView обеспечивает способ достижения двух эффектов: прозрачности и яркости. Первый является более очевидным, с полупрозрачными боковыми панелями или заголовками. И документация имеет действительно хорошее описание вибрации:
Вибрация связана с прозрачностью. В нем описывается режим наложения, в котором используются специальные режимы наложения, такие как Plus Lighter, Plus Darker, Color Dodge или Color Burn.
В основном описывает, как содержимое (текст, изображения и т. Д.) В представлении визуальных эффектов комбинируется с полупрозрачностью.
Так как они все связаны?
материал
Материал описывает внешний вид эффекта полупрозрачности. Как вы указали, некоторые подвержены влиянию NSAppearance, некоторые нет. Те, которые семантически описывают их использование, так что пользовательский интерфейс может напоминать этот эффект независимо от внешнего вида (.appearanceBased
, .titlebar
, .menu
, .popover
, .sidebar
, .selection
в то время как другие предусматривают конкретный контроль над получаемой прозрачностью (.light
, .dark
, .mediumLight
, .ultraDark
), но следует использовать вместе с ассоциированным с ними NSAppearance, чтобы содержимое в представлении визуального эффекта могло соответствовать эффекту полупрозрачности. Если вам не нужен конкретный контроль над материалом, использование чувствительных к внешнему виду / семантических может привести к более стандартному пользовательскому интерфейсу.
флюиды
Таким образом, чтобы получить эффект вибрации контента, который может обеспечить NSVisualEffectView, его необходимо использовать в сочетании с ярким внешним видом: .vibrantLight
или же .vibrantDark
, Без установки "яркого" внешнего вида NSVisualEffectView будет обеспечивать только эффект полупрозрачности в фоновом режиме, а содержимое внутри него будет выглядеть простым и не иметь специальных режимов наложения, как вы видите на боковых панелях или заголовках.