iOS贝塞尔曲线设置圆角

最近公司较闲, 没有前段的开发, 复习了一下iOS, 研究了一下贝塞尔曲线设置圆角.

写了一个UIImage的分类, 用的时候直接引入头文件, 可以动态设置边框宽度和颜色.

以下是分类.m文件

#import"UIImage+image.h"

@implementationUIImage (image)

/*

0.加载图片;

1.确定边框宽度;

2.开启一个上下文;

3.绘制大图显示出来;

4.绘制一个小圆,设置小圆为裁剪区域;

5.把图片绘制在上下文中;

6.从上下文中取出图片;

7.关闭上下文;

*/

+ (UIImage*_Nonnull)imageWithBorderW:(CGFloat)borderW color:(nonnullUIColor*)color image:(nonnullUIImage*)image{

CGSizesize =CGSizeMake(image.size.width+2* borderW, image.size.height+2* borderW);

UIGraphicsBeginImageContext(size);

UIBezierPath*path = [UIBezierPathbezierPathWithOvalInRect:CGRectMake(0,0, size.width, size.height)];

[colorset];

[pathfill];

UIBezierPath*clipPath = [UIBezierPathbezierPathWithOvalInRect:CGRectMake(borderW, borderW, image.size.width, image.size.height)];

[clipPathaddClip];

[imagedrawAtPoint:CGPointMake(borderW, borderW)];

UIImage*newImage =UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndPDFContext();

returnnewImage;

}

@end

以下是在ViewController的调用:

#import"ViewController.h"

#import"UIImage+image.h"

@interfaceViewController()

@property(weak,nonatomic)IBOutletUIImageView*imageV;

@end

@implementationViewController

- (void)viewDidLoad {

[superviewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

//0.加载图片

UIImage*image = [UIImageimageNamed:@"touxiang"];

self.imageV.image= [UIImageimageWithBorderW:5color:[UIColororangeColor]image:image];

}

- (void)didReceiveMemoryWarning {

[superdidReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容