【问题标题】:Change Everything to Black And White (Applying Blending to View Background Colour)将所有内容更改为黑白(应用混合查看背景颜色)
【发布时间】:2018-06-06 15:15:53
【问题描述】:

结果:

中间有弹出警告框的图片是我想要达到的结果。

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

所以为了实现这一点,这是我尝试过的。

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

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 限制设置为全屏。然而,这只会产生一个黑色的矩形。

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

【问题讨论】:

  • 这很整洁,但系统默认调暗背景是否不足?当开发人员认为系统默认设置有问题时,我往往不喜欢。
  • @BallpointBen 实际上,我这样做的重点是看看这是否可行,并增加我的知识和技能基础。我实际上并不想实现这一点。我搜索并没有看到任何与此相关的解决方案。也感谢马特的回答。

标签: ios swift core-graphics


【解决方案1】:

不存在与视图背后的混合模式之类的东西。混合模式是关于将 绘制到这个上下文中。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 2016-08-17
    • 2014-01-19
    • 2019-07-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    相关资源
    最近更新 更多