//1.添加設(shè)計(jì)師提供一張漸變色圖?
? ? UIImageView*imageView = [[UIImageView alloc] initWithFrame:self.bounds];
? ? imageView.image= [UIImage imageNamed:@"gradient_image"];
? ? [self?addSubview:imageView];
//2.畫貝塞爾曲線如迟,例如畫弧形
? ? UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(self.frame.size.width/2, self.frame.size.height/2)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? radius:[UIScreen mainScreen].bounds.size.width * 0.17
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? startAngle:0 * M_PI
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?endAngle:2 * M_PI
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? clockwise:YES];
?? ? path.lineWidth=60;
//3.新建CAShapeLayer
?CAShapeLayer *trackLayer = [[CAShapeLayer alloc] init];
? ?trackLayer.frame=self.bounds;
? ?trackLayer.position = CGPointMake(self.frame.size.width/2, self.frame.size.height/2);//此處保持和貝塞爾曲線的中心點(diǎn)一致
? ?trackLayer.path= path.CGPath;
? ?trackLayer.fillColor = UIColor.clearColor.CGColor;
? ?trackLayer.strokeColor = UIColor.whiteColor.CGColor;
? ?trackLayer.lineWidth= path.lineWidth+2;
? ?trackLayer.shadowOpacity=0.3;
? ?trackLayer.shadowOffset=CGSizeMake(0,2);
//4.設(shè)置 第1步的圖片的蒙版為第3步的CAShapeLayer
? ? imageView.layer.mask= trackLayer;
相關(guān)圖如下