是否有可能控制约塞米蒂半透明/模糊背景的活力量?

时间:2014-11-15 22:16:16

标签: objective-c cocoa osx-yosemite nsvisualeffectview

我想知道是否有可能控制Yosemite最近引入的所谓的活力效果中的半透明度,这可以通过使用NSVisualEffectView类在Objective-C应用程序中实现。

这是一个更具体的例子。考虑Yosemite OS X在音量改变时显示的半透明效果:

Yosemite

通过使用简单NSVisualEffectView(如下图所示)获得的活力强得多(

NSVisualEffectView

如果我们比较这两个图像 - 请忽略扬声器的不同形式,但要关注背景 - 我们看到Yosemite OS X音量中的活力量(高斯模糊效果的强度)要强得多窗口而不是我的应用程序使用NSVisualEffectView。怎么能得到那个?

2 个答案:

答案 0 :(得分:1)

在OS X Yosemite Apple中引入了可应用于NSVisualEffectView的新材料。

从OS X v10.11的AppKit发行说明:

  

NSVisualEffectView具有其他可用材料,现在它们分为两类。首先,有一些抽象系统定义的材料,它们应该如何使用:NSVisualEffectMaterialAppearanceBased,NSVisualEffectMaterialTitlebar,NSVisualEffectMaterialMenu(10.11中的新内容),NSVisualEffectMaterialPopover(10.11中的新内容)和NSVisualEffectMaterialSidebar(10.11中的新内容)。在尝试创建模仿这些标准UI部件的设计时,请使用这些材料。接下来,有一些特定的调色板材料可以更直接地用于创建特定的设计或外观。它们是:NSVisualEffectMaterialLight,NSVisualEffectMaterialDark,NSVisualEffectMaterialMediumLight(10.11的新增内容)和NSVisualEffectMaterialUltraDark(10.11的新增内容)。这些颜色可能会略有不同,具体取决于NSVisualEffectView上设置的blendMode;在某些情况下,它们可能与另一种材料相同。

即使这仅适用于OS X El Capitan,您现在可以为视图创建更“接近原始”的模糊效果。我假设Apple使用NSVisualEffectMaterialMediumLight材料作为其卷视图。

答案 1 :(得分:0)

我实现了以下效果

  1. 有一个NSVisualEffect视图来获得活力
  2. 在视觉效果视图的顶部具有相同尺寸的自定义视图
  3. 将自定义视图的背景颜色设置为白色,将alpha设置为0(完全透明)
  4. 增加自定义视图的alpha值,使其不太透亮(模糊不清)