核心代码
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];
- (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;
}