美文网首页
【iOS开发笔记】抠出部分区域透明的引导视图

【iOS开发笔记】抠出部分区域透明的引导视图

作者: Mr_Ten | 来源:发表于2023-08-10 16:23 被阅读0次

    1、需求介绍

    app首次安装时的新功能指引功能。

    2、实现原理

    1. 将屏幕滚动到要指引的位置后,屏幕大部分区域添加遮罩蒙版。
    2. 获得要突出显示的部分坐标计算出。
    3. 在蒙版中将该坐标(CGRect)对应的区域通过贝塞尔曲线抠图设置为透明,达到对应突出显示效果。

    3、透明区域代码实现

    /**
    抠出要展示的透明区域
    - Parameter : transparencyRect 要突出显示的坐标
    */
        private func updateTransparencyAction(transparencyRect:CGRect) {
            //透明区域
            let transparencyPath = UIBezierPath.init(roundedRect: transparencyRect, byRoundingCorners: .allCorners, cornerRadii: .init(width: 8, height: 8));
            //全体区域
            let mainPath = UIBezierPath.init(rect: DeviceFrame);
            mainPath.append(transparencyPath);
            mainPath.usesEvenOddFillRule = true;
            
            //图层设置
            let shapeLayer = CAShapeLayer.init();
            shapeLayer.path = mainPath.cgPath;
            shapeLayer.fillColor = EHIColor.hexColor_000000.cgColor;//颜色只要不是透明即可
            shapeLayer.fillRule = kCAFillRuleEvenOdd;
            
            self.layer.mask = shapeLayer;
        }
    

    相关文章

      网友评论

          本文标题:【iOS开发笔记】抠出部分区域透明的引导视图

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