Ios 以灰度绘制一个视图?

Ios 以灰度绘制一个视图?,ios,uiview,filter,grayscale,Ios,Uiview,Filter,Grayscale,有没有办法以灰度绘制给定的UIView(及其子视图) 我正在尝试在不覆盖图像或切换用于绘制层次中每个UIView的图像的情况下,获取视图层次并使其看起来禁用。您不能以灰度绘制UIView,但可以在整个视图的顶部放置一个半透明的UIView层,以显示灰显行为 选中。您不能以灰度绘制UIView,但可以在整个对象的顶部放置一个半透明的UIView层,以显示灰显的行为 检查。当我想禁用视图时,我通常只设置userInteractionEnabled=NO和alpha=.5(或其他一些

有没有办法以灰度绘制给定的UIView(及其子视图)


我正在尝试在不覆盖图像或切换用于绘制层次中每个UIView的图像的情况下,获取视图层次并使其看起来禁用。

您不能以灰度绘制UIView,但可以在整个视图的顶部放置一个半透明的UIView层,以显示灰显行为


选中。

您不能以灰度绘制UIView,但可以在整个对象的顶部放置一个半透明的UIView层,以显示灰显的行为


检查。

当我想禁用视图时,我通常只设置
userInteractionEnabled=NO
alpha=.5
(或其他一些<1.alpha)

当我想禁用视图时,我通常只设置
userInteractionEnabled=NO
alpha=.5
(或其他一些<1.alpha)

在UIView中添加一个CALayer,将compositingFilter设置为colorBlendMode时:

let grayLayer = CALayer()
grayLayer.frame = bounds
grayLayer.compositingFilter = "colorBlendMode"
grayLayer.backgroundColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1.0).cgColor
layer.addSublayer(grayLayer)

将CALayer添加到UIView,并将compositingFilter设置为colorBlendMode:

let grayLayer = CALayer()
grayLayer.frame = bounds
grayLayer.compositingFilter = "colorBlendMode"
grayLayer.backgroundColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1.0).cgColor
layer.addSublayer(grayLayer)

给我的老问题添加一条评论。在这个帖子中可能有一个解决方案:给我的老问题添加一条评论。此线程中可能有一个解决方案: