【iOS開(kāi)發(fā)筆記】摳出部分區(qū)域透明的引導(dǎo)視圖

1、需求介紹

app首次安裝時(shí)的新功能指引功能。

2、實(shí)現(xiàn)原理

  1. 將屏幕滾動(dòng)到要指引的位置后,屏幕大部分區(qū)域添加遮罩蒙版。
  2. 獲得要突出顯示的部分坐標(biāo)計(jì)算出。
  3. 在蒙版中將該坐標(biāo)(CGRect)對(duì)應(yīng)的區(qū)域通過(guò)貝塞爾曲線摳圖設(shè)置為透明,達(dá)到對(duì)應(yīng)突出顯示效果。

3、透明區(qū)域代碼實(shí)現(xiàn)

/**
摳出要展示的透明區(qū)域
- Parameter : transparencyRect 要突出顯示的坐標(biāo)
*/
    private func updateTransparencyAction(transparencyRect:CGRect) {
        //透明區(qū)域
        let transparencyPath = UIBezierPath.init(roundedRect: transparencyRect, byRoundingCorners: .allCorners, cornerRadii: .init(width: 8, height: 8));
        //全體區(qū)域
        let mainPath = UIBezierPath.init(rect: DeviceFrame);
        mainPath.append(transparencyPath);
        mainPath.usesEvenOddFillRule = true;
        
        //圖層設(shè)置
        let shapeLayer = CAShapeLayer.init();
        shapeLayer.path = mainPath.cgPath;
        shapeLayer.fillColor = EHIColor.hexColor_000000.cgColor;//顏色只要不是透明即可
        shapeLayer.fillRule = kCAFillRuleEvenOdd;
        
        self.layer.mask = shapeLayer;
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容