更改 NSVisualEffectView 的颜色
Change color of NSVisualEffectView
我目前正在尝试更改 NSVisualEffectView 的色调。这是我到目前为止得到的:
class MainViewViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
// create a colored view to tint the visual effect view
let coloredView = NSView(frame: self.view.frame)
coloredView.layer?.backgroundColor = NSColor(red: 1, green: 0, blue: 0, alpha: 0.5).cgColor
// create the visual effect view for the background blur
let visualEffectView = NSVisualEffectView(frame: self.view.frame)
visualEffectView.addSubview(coloredView)
// add the visual effect view
self.view.addSubview(visualEffectView, positioned: NSWindow.OrderingMode.below, relativeTo: nil)
}
}
如您所见,我尝试添加另一个图层来为视觉效果视图着色。但是,这没有用。
我可以更改 NSVisualEffectView 的颜色吗?
您不更改颜色 "of" 视觉效果视图,因为它没有颜色。视觉效果视图根据视图的 material 和混合模式混合背景和前景(子视图)。 "background" 是 window 中视觉效果视图下的内容,或者是 window.
后面的内容
在这些示例中,在红色 NSBox 中的视觉效果视图中有一个蓝色 NSBox。
这个视觉效果视图的混合模式是"behind"window。请注意,您在 window 后面看到的绿色是视觉效果视图中的混合背景。
这个视觉效果视图的混合模式是"within"window。请注意,您会看到红色框,它是视觉效果视图的背景。
在这两种情况下,material 的外观都是 "light"。不同的material会有不同的外观。
"blurry colored background" 没有通用的方法来创建视觉效果视图。它旨在以特定方式使用,基于 material/blending 模式组合,每种方式都有不同的外观。
我目前正在尝试更改 NSVisualEffectView 的色调。这是我到目前为止得到的:
class MainViewViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
// create a colored view to tint the visual effect view
let coloredView = NSView(frame: self.view.frame)
coloredView.layer?.backgroundColor = NSColor(red: 1, green: 0, blue: 0, alpha: 0.5).cgColor
// create the visual effect view for the background blur
let visualEffectView = NSVisualEffectView(frame: self.view.frame)
visualEffectView.addSubview(coloredView)
// add the visual effect view
self.view.addSubview(visualEffectView, positioned: NSWindow.OrderingMode.below, relativeTo: nil)
}
}
如您所见,我尝试添加另一个图层来为视觉效果视图着色。但是,这没有用。
我可以更改 NSVisualEffectView 的颜色吗?
您不更改颜色 "of" 视觉效果视图,因为它没有颜色。视觉效果视图根据视图的 material 和混合模式混合背景和前景(子视图)。 "background" 是 window 中视觉效果视图下的内容,或者是 window.
后面的内容在这些示例中,在红色 NSBox 中的视觉效果视图中有一个蓝色 NSBox。
这个视觉效果视图的混合模式是"behind"window。请注意,您在 window 后面看到的绿色是视觉效果视图中的混合背景。
这个视觉效果视图的混合模式是"within"window。请注意,您会看到红色框,它是视觉效果视图的背景。
在这两种情况下,material 的外观都是 "light"。不同的material会有不同的外观。
"blurry colored background" 没有通用的方法来创建视觉效果视图。它旨在以特定方式使用,基于 material/blending 模式组合,每种方式都有不同的外观。