UIView *bg = [[UIView alloc] initWithFrame:self.view.bounds];
UIView *red = [[UIView alloc] initWithFrame:self.view.bounds];
bg.backgroundColor = UIColor.blueColor;
red.backgroundColor = [UIColor redColor];
// Create a mask layer and the frame to determine what will be visible in the view.
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
// Create a path and add the rectangle in it.
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddArc(path, nil, self.view.frame.size.width/2, self.view.frame.size.height/2, 20, 0, 2*3.14168, 0);
// Set the path to the mask layer.
[maskLayer setPath:path];
// Release the path since it's not covered by ARC.
CGPathRelease(path);
// Set the mask of the view.
bg.layer.mask = maskLayer;
[self.view addSubview:red];
[red addSubview:bg];
中间镂空效果:A 视图上叠加 B视图,只显示B视图中间部分,达到好像中间镂空的效果
最新推荐文章于 2021-02-24 19:04:29 发布