1、需求介紹
app首次安裝時(shí)的新功能指引功能。
2、實(shí)現(xiàn)原理
- 將屏幕滾動(dòng)到要指引的位置后,屏幕大部分區(qū)域添加遮罩蒙版。
- 獲得要突出顯示的部分坐標(biāo)計(jì)算出。
- 在蒙版中將該坐標(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;
}