Swift UIView 鏤空

Swift UIView 鏤空

func showGuidage() {


? ? ? ? // 鏤空

? ? ? ? //透明區(qū)域

? ? ? ? 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上面,會(huì)黑掉 后面沒東西顯示了

? ? ? ? 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 //? 奇偶層顯示規(guī)則

? ? ? ? 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

? ? }

?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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