美文网首页
iOS app 一键黑白效果

iOS app 一键黑白效果

作者: YannChee | 来源:发表于2023-05-21 15:18 被阅读0次

思路就是 在app keywindow上面增加一个带滤镜的图层
核心就是layer的 compositingFilter 属性

import UIKit

@objcMembers class AppGrayView: UIView {
  
    class func showGrayView() {
        guard #available(iOS 12.0, *) else {
            return
        }
        
        let topWindow = AppCommon.appKeyWindow
        
        let grayView = AppGrayView.init(frame: topWindow.bounds)
        grayView.isUserInteractionEnabled = false
        grayView.backgroundColor = .gray
        grayView.layer.compositingFilter = "saturationBlendMode"
        grayView.layer.zPosition = CGFLOAT_MAX
        
        topWindow.addSubview(grayView)
    }
    
    class func removeGrayView() {
        let topWindow = AppCommon.appKeyWindow
        
        var subViewArr: [UIView] = NSMutableArray.init(array: topWindow.subviews) as! [UIView]
        for subView in subViewArr {
            if (subView.isKind(of: AppGrayView.self)) {
                subView.removeFromSuperview()
            }
        };
        
    }
}

相关文章

网友评论

      本文标题:iOS app 一键黑白效果

      本文链接:https://www.haomeiwen.com/subject/rqnasdtx.html