iOS 贝塞尔路径

简介: iOS 贝塞尔路径

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;


目录
相关文章
|
开发工具 git iOS开发
iOS开发 - 不小心删除了Copy Bundle Resources怎么办?(多人开发频繁添加删除图片导致图片路径重复,编译报错)
iOS开发 - 不小心删除了Copy Bundle Resources怎么办?(多人开发频繁添加删除图片导致图片路径重复,编译报错)
253 0
iOS开发 - 不小心删除了Copy Bundle Resources怎么办?(多人开发频繁添加删除图片导致图片路径重复,编译报错)
|
iOS开发
iOS - 遍历指定路径下的所有文件(不包括更下级文件)
iOS - 遍历指定路径下的所有文件(不包括更下级文件)
359 0
iOS - 遍历指定路径下的所有文件(不包括更下级文件)
|
iOS开发
获取IOS下各种路径
获取IOS下各种路径
78 0
|
iOS开发
ios获取Document文件夹路径
ios获取Document文件夹路径
225 0
|
iOS开发
IOS学习笔记七之KVC和Key路径
IOS学习笔记七之KVC和Key路径
136 0
|
网络性能优化 iOS开发 网络架构