美文网首页
iOS 贝塞尔路径

iOS 贝塞尔路径

作者: anny_4243 | 来源:发表于2022-09-15 18:00 被阅读0次

UIBezierPath类属于UIKit框架,主要用于绘图中设置绘图的路径。在Core Graphics中,也提供了CGPath类以及CGContext类可以用于绘图。在实际开发中,UIBezierPath类的使用比CGPath类和CGContext类要简单,所以这里重点来学习UIBezierPath类在绘图中的应用。

UIBezierPath类的常用方法如下。UIBezierPath类主要用于创建一个路径对象,因此在UIBezierPath类中提供了创建各种类型路径的方法,例如直线路径、曲线路径等。

实例化一个贝塞尔路径对象:

+ (instancetype)bezierPath;

初始化矩形路径:

+ (instancetype)bezierPathWithRect:(CGRect)rect;

初始化一个圆角的矩形路径:

+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect cornerRadius:(CGFloat)cornerRadius;

初始化一个圆角的矩形路径(可以设置某一个角为圆角):

+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect byRoundingCorners:(UIRectCorner)corners cornerRadii:(CGSize)cornerRadii;

用法:

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(10, 10)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = self.bounds;
maskLayer.path = maskPath.CGPath;
self.layer.mask = maskLayer;

初始化椭圆形路径:

+ (instancetype)bezierPathWithOvalInRect:(CGRect)rect;

初始化弧形路径。需要设置四个参数,包括弧形的圆心点、弧度以及起始、终止角度:

+ (instancetype)bezierPathWithArcCenter:(CGPoint)center radius:(CGFloat)radius startAngle:(CGFloat)startAngle endAngle:(CGFloat)endAngle clockwise:(BOOL)clockwise;

设置当前绘图所在的点位,即设置画笔当前的位置:

- (void)moveToPoint:(CGPoint)point;

从绘图当前点位绘制一条直线到目标点位:

- (void)addLineToPoint:(CGPoint)point;

从绘图当前点位绘制一条圆弧到目标点位,弧度需要由控制点controlPoint决定:

- (void)addCurveToPoint:(CGPoint)endPoint controlPoint1:(CGPoint)controlPoint1 controlPoint2:(CGPoint)controlPoint2;

封闭当前的路径:

- (void)closePath;

填充路径所封闭的区域:

- (void)fill;

画线:

- (void)stroke;

相关文章

网友评论

      本文标题:iOS 贝塞尔路径

      本文链接:https://www.haomeiwen.com/subject/fmfdortx.html