我正在尝试为我的应用程序创建一个“黑暗模式”,并且我想以一种非常简单的方式来完成它。有什么方法可以应用过滤器或在我的其他视图上创建另一个视图,以便它们看起来是倒置的 - 很像 iOS 3.2+ 上的“辅助功能”?我知道 Core Image 滤镜在 iPhone 上不起作用,但这对我来说没什么大不了的——只要有办法应用不同类型的滤镜。
这在 iPhone 上可行吗?苹果是如何做到的?
听起来您正在考虑在整个用户界面上放置一个填充有深色的半透明视图。如果是这种情况,那么您应该阅读转发触摸事件以讨论所涉及的问题。
另一种方法是更改用于绘制视图的颜色和图像集。
如果您正在处理自定义视图,这两种方案都会更容易并且工作得更好。如果您使用覆盖,上面链接的文档说明标准 UI 元素不适合事件转发。如果您更改颜色,那么...取决于您使用的 UI 元素,可能会也可能不会替换您自己的图像和颜色。
尝试这个!
首先,创建一个图层!
let foreground = CALayer()
foreground.backgroundColor = UIColor.blue.cgColor //Whatever color you want
foreground.opacity = 0.5
foreground.frame = (UIApplication.shared.keyWindow?.bounds)
foreground.masksToBounds = true
然后只需将图层添加到您的根视图控制器
UIApplication.shared.keyWindow?.rootViewController?.view.layer.addSublayer(foreground)
希望这可以帮助别人!