关键字段
mask
kCAFillRuleEvenOdd
一、mask
UIBezierPath * bezierPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:0];//先绘制一个等view大小的区域
[bezierPath appendPath:[UIBezierPath bezierPathWithArcCenter:CGPointMake(CGRectGetWidth(self.frame)/2.0, CGRectGetHeight(self.frame)/2.0) radius:CGRectGetHeight(self.frame)/2.0 startAngle:0 endAngle:2 * M_PI clockwise:NO]];//在上面区域内再绘制一个圆形
CAShapeLayer * shapelayer = [CAShapeLayer layer];
shapelayer.path = bezierPath.CGPath;
shapelayer.fillColor = [UIColor blackColor].CGColor;//只要不设置为透明色都可以
self.layer.mask = shapelayer;
效果:
参考:https://blog.csdn.net/weixin_39339407/article/details/81076638