免费开源的iOS开发学习平台

绘图CoreGraphics:2-贝塞尔路径(UIBezierPath)

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

UIBezierPath类的常用方法

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

  • 实例化一个贝塞尔路径对象
+ (UIBezierPath *)bezierPath;
  • 初始化矩形路径
+ (UIBezierPath *)bezierPathWithRect:(CGRect)rect;
  • 初始化一个圆角的矩形路径
+ (instancetype)bezierPathWithRoundedRect:(CGRect)rect cornerRadius:(CGFloat)cornerRadius; 
  • 初始化椭圆形路径
+ (UIBezierPath *)bezierPathWithOvalInRect:(CGRect)rect;
  • 初始化弧形路径。需要传入四个参数,包括弧形的圆心点、弧度以及起始、终止角度
+ (UIBezierPath *)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)addQuadCurveToPoint:(CGPoint)endPoint controlPoint:(CGPoint)controlPoint;
  • 封闭当前的路径
- (void)closePath;
  • 填充路径所封闭的区域
- (void)fill;
  • 画线
- (void)stroke;