Какова связь между 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 будет обеспечивать только эффект полупрозрачности в фоновом режиме, а содержимое внутри него будет выглядеть простым и не иметь специальных режимов наложения, как вы видите на боковых панелях или заголовках.

Другие вопросы по тегам