iOS Swift 哀悼日灰化APP界面

实现原理:用添加了半透明灰色滤镜的View,盖在想要置灰的界面上。

自定义View

class GrayOverlayView: UIView {
    override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
        return nil
    }
}

添加View到界面。需要注意,saturationBlendMode滤镜效果只在iOS12以上系统有效,需要判断系统。否则会出现一个灰色的View盖住屏幕的问题。

if #available(iOS 12.0, *) {
    let grayView = GrayOverlayView()
    grayView.translatesAutoresizingMaskIntoConstraints = false
    grayView.frame = view.bounds
    grayView.backgroundColor = .lightGray
    grayView.layer.compositingFilter = "saturationBlendMode"
    view.addSubview(grayView)
}

参考文章:iOS哀掉日黑白化

你可能感兴趣的:(iOS Swift 哀悼日灰化APP界面)