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

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

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

Yosemite

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

NSVisualEffectView

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

2 ответа

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

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

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

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

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

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