Можно ли контролировать количество вибрации полупрозрачного/размытого фона в Йосемити?

Я хотел бы знать, можно ли контролировать количество прозрачности в так называемом эффекте вибрации, введенном недавно Yosemite, который может быть реализован в приложении Objective-C с использованием класса NSVisualEffectView.

Вот пример, который будет более конкретным. Рассмотрим полупрозрачный эффект, который показывает Yosemite OS X при изменении уровня громкости:

Yosemite

Динамичность намного сильнее, чем то, что получается с помощью простого NSVisualEffectView (показано на следующем рисунке)

NSVisualEffectView

Если мы сравним два изображения - пожалуйста, игнорируйте разную форму динамиков, но фокусируйтесь на фоне - мы видим, что количество вибрации (сила в эффекте гауссова размытия) намного сильнее в объеме Yosemite OS X вместо моего приложения, используя NSVisualEffectView. Как это можно получить?

Ответ 1

В OS X Yosemite Apple представила новые материалы, которые могут быть применены к NSVisualEffectView.

Из примечаний к выпуску AppKit для OS X v10.11:

В NSVisualEffectView имеются дополнительные материалы, и теперь они организованы в двух типах категорий. Во-первых, существуют абстрактные системные материалы, определяемые тем, как их следует использовать: NSVisualEffectMaterialAppearanceBased, NSVisualEffectMaterialTitlebar, NSVisualEffectMaterialMenu (новый в 10.11), NSVisualEffectMaterialPopover (новый в 10.11) и NSVisualEffectMaterialSidebar (новый в 10.11). Используйте эти материалы, когда вы пытаетесь создать дизайн, который имитирует эти стандартные элементы пользовательского интерфейса. Далее, есть конкретные материалы палитры, которые можно использовать более непосредственно, чтобы создать конкретный дизайн или внешний вид. Это: NSVisualEffectMaterialLight, NSVisualEffectMaterialDark, NSVisualEffectMaterialMediumLight (новый для 10.11) и NSVisualEffectMaterialUltraDark (новый для 10.11). Эти цвета могут немного отличаться в зависимости от параметра blendingMode, установленного в NSVisualEffectView; в некоторых случаях они могут быть похожими на другой материал.

Даже если это применимо только для OS X El Capitan, теперь вы можете создать более "близкий к оригиналу" эффект размытия для вашего вида. Я предполагаю, что Apple использует материал NSVisualEffectMaterialMediumLight для просмотра тома.

Ответ 2

Я достигаю этого эффекта следующим образом

  • имеет представление NSVisualEffect, чтобы получить динамичность
  • имеет пользовательский вид поверх визуального эффекта с одинаковым размером
  • установить цвет фона пользовательского представления на белый и альфа 0 (полностью прозрачный)
  • увеличить альфу пользовательского представления, чтобы сделать его менее прозрачным (менее размытым).