iOS在UIView遮罩層上擷取一塊透明區域(新手引導頁)
阿新 • • 發佈:2019-02-12
用於設定新手引導頁
設定方法
- (CAShapeLayer *)addTransparencyViewWith:(UIBezierPath *)tempPath{ UIBezierPath *path = [UIBezierPath bezierPathWithRect:[UIScreen mainScreen].bounds]; [path appendPath:tempPath]; path.usesEvenOddFillRule = YES; CAShapeLayer *shapeLayer = [CAShapeLayer layer]; shapeLayer.path = path.CGPath; shapeLayer.fillColor= [UIColor blackColor].CGColor; //其他顏色都可以,只要不是透明的 shapeLayer.fillRule=kCAFillRuleEvenOdd; return shapeLayer; }
使用方法:
UIBezierPath *tempPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(120, 150, 100, 50) byRoundingCorners:(UIRectCornerTopLeft |UIRectCornerTopRight |UIRectCornerBottomRight|UIRectCornerBottomLeft) cornerRadii:CGSizeMake(4, 4)]; UIView *guideView = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds]; guideView.backgroundColor = [UIColor blackColor]; guideView.alpha = 0.6; guideView.layer.mask = [self addTransparencyViewWith:tempPath]; [[UIApplication sharedApplication].keyWindow addSubview:guideView];