Swift UIView 镂空

Swift UIView 镂空

func showGuidage() {


        // 镂空

        //透明区域

        let nRect = CGRect.init(x: zScaleDev(iPhoneX: 15, iPadX: 54), y: zScaleDev(iPhoneX: 0, iPadX: 0), width: zScaleDev(iPhoneX: 345, iPadX: 727), height: zScaleDev(iPhoneX: 160, iPadX: 185))


        // 不能直接加在最底层viewController.view上面,会黑掉 后面没东西显示了

        let backgroundView = UIView()

        backgroundView.frame = CGRect.init(x: (zScreenW - zScaleDev(iPhoneX: 375, iPadX: 834)) / 2 , y: zNavBarH, width: zScaleDev(iPhoneX: 375, iPadX: 834), height:  zScaleDev(iPhoneX: 970, iPadX: 1112))

        view.addSubview(backgroundView)


        let maskLayer = CAShapeLayer()

        maskLayer.fillRule = CAShapeLayerFillRule.evenOdd //  奇偶层显示规则

        maskLayer.fillColor = UIColor.init(red: 0, green: 0, blue: 0, alpha: 0.6).cgColor

        maskLayer.opacity = 0.8

        backgroundView.layer.addSublayer(maskLayer)


        let basicPath = UIBezierPath.init(roundedRect: backgroundView.bounds, cornerRadius: 0) // 底层

        let maskPath = UIBezierPath.init(roundedRect: nRect, cornerRadius: zScale(x: 14))

        basicPath.append(maskPath) // 重叠

        basicPath.usesEvenOddFillRule = true

        maskLayer.path = basicPath.cgPath

    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容