UIBezierPath

一,绘制方法

椭圆 / 圆

UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(110, 100, 100, 100)];

绘制矩形

UIBezierPath *path = [UIBezierPath bezierPathWithRect:CGRectMake(110, 100, 150, 100)];

设置圆角

// 四个圆角
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(110, 100, 150, 100) cornerRadius:50];

// 设置特点圆角
// 圆角size:height值不影响,受width控制
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(110, 100, 300, 300) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(50, 100)];
    

绘制圆弧


// clockwise YES:顺时针   NO:逆时针
UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:self.view.center radius:radius startAngle:startAngle endAngle:endAngle clockwise:NO];

路径中增加一个已有路径

- (void)appendPath:(UIBezierPath *)bezierPath

返回一个翻转已有路径的新路径

- (UIBezierPath *)bezierPathByReversingPath

利用当前绘画属性填充路径封闭范围, 该方法在绘画之前会自动将开放子路径封闭, 填充部分不包含路径本身, 所以对于线宽较大的路径, 填充部分会跟部分路径重合

- (void)fill

利用指定模式填充路径封闭范围, 该方法在绘画之前会自动将开放子路径封闭, 填充部分不包含路径本身, 所以对于线宽较大的路径, 填充部分会跟部分路径重合

- (void)fillWithBlendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha

利用当前绘画属性沿着路径画线

- (void)stroke

利用指定模式沿着路径画线

- (void)strokeWithBlendMode:(CGBlendMode)blendMode alpha:(CGFloat)alpha

曲线闭合方法

[path closePath];

二,绘制属性

路径的填充颜色

- (void)setFill
[[UIColor orangeColor] setFill];

路径的画线颜色

- (void)setStroke
[[UIColor orangeColor] setStroke];

路径的终点形状, 该属性适用于开放路径的起点和终点, 默认为kCGLineCapButt(方形结束, 结束位置正好为精确位置), 其他可选项为kCGLineCapRound(圆形结束, 结束位置超过精确位置半个线宽)和kCGLineCapSquare(方形结束, 结束位置超过精确位置半个线宽)

@property(nonatomic) CGLineCap lineCapStyle
UIBezierPath *path = [UIBezierPath bezierPath];
path.lineCapStyle = kCGLineCapButt;

路径的连接点形状, 默认为kCGLineJoinMiter(全部连接), 其他可选项为kCGLineJoinRound(圆形连接)和kCGLineJoinBevel(斜角连接)

@property(nonatomic) CGLineJoin lineJoinStyle
UIBezierPath *path = [UIBezierPath bezierPath];
path.lineJoinStyle = kCGLineJoinMiter;

三,结合CAShapeLayer使用

CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] init];
shapeLayer.path = path.CGPath;
// 填充色
shapeLayer.fillColor = [UIColor blueColor].CGColor;
// 边框色
shapeLayer.strokeColor = [UIColor redColor].CGColor;
[self.view.layer addSublayer:shapeLayer];

四,结合动画使用


你可能感兴趣的:(UIBezierPath)