如何在黑色背景上实现纯黑色 UIVisualEffectView?
How to achieve pure black UIVisualEffectView when on top of black background?
在“信息”应用中,当滚动到底部时,iMessage 栏的背景在浅色模式下为纯白色,而在深色模式下为纯黑色,因此只有在下方有内容时您才会看到模糊的栏背景。 Twitter 应用程序中的顶部栏目前以相同的方式工作。我想在我的应用程序中执行此操作,但我不知道如何实现。
我已经尝试了所有可能的方法 UIBlurEffect
但其中 none 是黑色背景上的纯黑色,最深的灰色是 systemChromeMaterial
。在灯光模式下,只有 regular
和 light
是纯白色。请注意从这些图像底部的堆栈下方窥视的纯 black/white 背景。
从上到下的顺序:
- 常规
- 突出
- 额外的光
- 浅色
- 黑暗
- 系统超薄material
- 系统瘦身material
- 系统material
- 系统厚material
- 系统chromematerial
A similar question was asked about why the extra light blur effect is light gray over white backgrounds and how to make it pure white. This solution 致力于实现这一点,它也致力于在黑色背景之上实现纯黑色!这适用于常规、突出、额外的浅色、浅色和深色样式,但系统材质 none。我最终使用常规样式在明暗模式下工作。
if let vfxSubView = uiView.subviews.first(where: { String(describing: type(of: [=10=])) == "_UIVisualEffectSubview" }) {
vfxSubView.backgroundColor = UIColor.black.withAlphaComponent(0.7)
}
在“信息”应用中,当滚动到底部时,iMessage 栏的背景在浅色模式下为纯白色,而在深色模式下为纯黑色,因此只有在下方有内容时您才会看到模糊的栏背景。 Twitter 应用程序中的顶部栏目前以相同的方式工作。我想在我的应用程序中执行此操作,但我不知道如何实现。
我已经尝试了所有可能的方法 UIBlurEffect
但其中 none 是黑色背景上的纯黑色,最深的灰色是 systemChromeMaterial
。在灯光模式下,只有 regular
和 light
是纯白色。请注意从这些图像底部的堆栈下方窥视的纯 black/white 背景。
从上到下的顺序:
- 常规
- 突出
- 额外的光
- 浅色
- 黑暗
- 系统超薄material
- 系统瘦身material
- 系统material
- 系统厚material
- 系统chromematerial
A similar question was asked about why the extra light blur effect is light gray over white backgrounds and how to make it pure white. This solution 致力于实现这一点,它也致力于在黑色背景之上实现纯黑色!这适用于常规、突出、额外的浅色、浅色和深色样式,但系统材质 none。我最终使用常规样式在明暗模式下工作。
if let vfxSubView = uiView.subviews.first(where: { String(describing: type(of: [=10=])) == "_UIVisualEffectSubview" }) {
vfxSubView.backgroundColor = UIColor.black.withAlphaComponent(0.7)
}