将所有内容更改为黑白(应用混合以查看背景颜色)

Change Everything to Black And White (Applying Blending to View Background Colour)

结果:

弹出警告框的中间图像是我想要实现的结果。

当弹出一个警告框时,一切都变成了黑白。在设计中实现这一点的方法是在顶部添加一个图层,背景颜色为黑色,混合模式为色调。

因此,为了实现这一点,我尝试了以下方法。

我尝试在顶部添加一个视图(透明背景)。在该视图中,我绘制了一个具有混合模式色调的矩形。

override func draw(_ rect: CGRect) {
  let context = UIGraphicsGetCurrentContext()
  UIColor.black.setFill()
  context?.setBlendMode(.hue)

  let rect = rect
  context?.addRect(rect)
  context?.drawPath(using: .fillStroke)
}

UIView 具有设置为全屏的约束。然而,这只会产生一个黑色矩形。

关于如何实现这个的任何提示?

视图之后没有混合模式这样的东西。混合模式是关于将绘制到这个上下文中。

要实现您所描述的内容,您必须拍摄当前视图控制器视图的快照并将其以黑白方式绘制到您的上下文中。

然而,通常的做法是设置 tintAdjustmentMode。这就是真正的警报视图所做的。