iOS 绘制圆角图片方法
2019-01-31 本文已影响2人
72行代码
// 贝塞尔曲线方法
- (void)drawCornerPicture{
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(200, 200, 200, 200)];
imageView.image = [UIImage imageNamed:@"1"];
//绘制贝塞尔曲线
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:100];
// 定制性高
// UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:imageView.bounds.size];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = imageView.bounds;
maskLayer.path = maskPath.CGPath;
imageView.layer.mask = maskLayer;
[self.view addSubview:imageView];
}
// Graphics绘制方法
- (void)drawCornerPicture{
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(200, 400, 200, 200)];
imageView.image = [UIImage imageNamed:@"1"];
// 开启图片上下文
// UIGraphicsBeginImageContext(imageView.bounds.size);
// 一般使用下面的方法
UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 0);
// 绘制贝塞尔曲线
UIBezierPath *bezierPath = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:100];
// 按绘制的贝塞尔曲线剪切
[bezierPath addClip];
// 画图
[imageView drawRect:imageView.bounds];
// 获取上下文中的图片
imageView.image = UIGraphicsGetImageFromCurrentImageContext();
// 关闭图片上下文
UIGraphicsEndImageContext();
[self.view addSubview:imageView];
}