UIBezierPath和CAShapeLayer配合肆意画图

一、CAShapeLayer

CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形

使用CAShapeLayer 绘制一个矩形

let layer = CAShapeLayer()

layer.frame = CGRectMake(110, 100, 150, 100)

layer.backgroundColor = UIColor.blackColor().CGColor

view.layer.addSublayer(layer)

 

CAShapeLayer 画图时的动画改变strokeEnd、strokeStart和lineWidth 三个属性,可以控制划线时具有动画效果。

 

二、UIBezierPath

CAShapeLayer 有一个神奇的属性 path 用这个属性配合上 UIBezierPath 这个类就可以达到超神的效果

 

2.1、CAShapeLayer 的两个重要颜色属性

fillColor : Layer 的填充色  

layer.fillColor = UIColor.clearColor().

CGColor

strokeColor:  Layer 的边框色

layer.strokeColor = UIColor.blackColor().CGColor

 

2.2、CAShapeLayer 和 UIBezierPath配合划取线

let path = UIBezierPath(arcCenter: view.center, radius: radius, startAngle: startAngle, endAngle: endAngle, clockwise: true)

let layer = CAShapeLayer()

layer.path = path.CGPath

layer.fillColor = UIColor.clearColor().CGColor

layer.strokeColor = UIColor.blackColor().CGColor

时间: 2024-07-31 12:28:32

UIBezierPath和CAShapeLayer配合肆意画图的相关文章

UIBezierPath 和 CAShapeLayer 画画图

画一个头戴小圆的五边形: - (void)drawPentagon{ //(1)UIBezierPath对象 UIBezierPath *aPath = [UIBezierPath bezierPath]; //开始点 [aPath moveToPoint:CGPointMake(100.0, 1.0)]; //划线点 [aPath addLineToPoint:CGPointMake(200.0, 40.0)]; [aPath addLineToPoint:CGPointMake(160, 1

放肆地用 UIBezierPath 和 CAShapeLayer 画各种图形

CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可以使用其他方式来画,随你. 杂谈 在 CAShapeLayer 中,也可以像 CALayer 一样指定它的 frame 来画,就像这样: Objective-C 1 2 3 4 5 let layer = CAShapeLayer() layer.frame = CGRectMake(110, 100, 150, 100) layer.backgroundColor = UICol

使用UIBezierPath和CAShapeLayer画各种图形 (转)

http://www.cocoachina.com/cms/wap.php?plg_nld=1&plg_auth=1&plg_nld=1&plg_dev=1&plg_uin=1&plg_usr=1&plg_vkey=1&plg_nld=1&action=article&id=15251&plg_auth=1&plg_uin=1&plg_dev=1&plg_nld=1&plg_usr=1&

iOS 使用UIBezierPath和CAShapeLayer画各种图形

CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可以使用其他方式来画,随你. 杂谈 在 CAShapeLayer 中,也可以像 CALayer 一样指定它的 frame 来画,就像这样: let layer = CAShapeLayer() layer.frame = CGRectMake(110, 100, 150, 100) layer.backgroundColor = UIColor.blackColor().CGColo

放肆地使用UIBezierPath和CAShapeLayer画各种图形

CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可以使用其他方式来画,随你. 杂谈 在 CAShapeLayer 中,也可以像 CALayer 一样指定它的 frame 来画,就像这样: 1 2 3 4 5 let layer = CAShapeLayer() layer.frame = CGRectMake(110, 100, 150, 100) layer.backgroundColor = UIColor.blackColo

使用UIBezierPath和CAShapeLayer画各种图形

使用UIBezierPath和CAShapeLayer画各种图形 CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可以使用其他方式来画,随你. 杂谈 在 CAShapeLayer 中,也可以像 CALayer 一样指定它的 frame 来画,就像这样: let layer = CAShapeLayer() layer.frame = CGRectMake(110, 100, 150, 100) layer.backgroundCo

UIBezierPath与CAShapeLayer结合画扇形

/*让半径等于期望半径的一半 lineWidth等于期望半径 就可以画圆*/ 可以看出layer的走势是从圆边的中间一半在圆外 一半在圆内 因此让半径等于期望半径的一半 lineWidth等于期望半径 - (void)viewDidLoad { [super viewDidLoad]; for (NSInteger i=0; i<5; i++) { [self itemViewWithOne:72*i*M_PI/180.0 two:72*(i+1)*M_PI/180.0]; } } - (UIV

UIBezierPath和CAShapeLayer的关系

CAShapeLayer是基于贝塞尔曲线而存在的, 如果没有贝塞尔曲线提供路径来画出图形, CAShapeLayer就没有存在的意义 下面我画了矩形和椭圆形, 代码如下: #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [self createOval]; } //

iOS quartzCore第五章——CAShapeLayer画各种图形 结合UIBezierPath

CAShapeLayer 是 CALayer 的子类,但是比 CALayer 更灵活,可以画出各种图形,当然,你也可以使用其他方式来画,随你. 首先CAShapeLayer 自身有path ,fillColor ,fillRule ,strokeColor ,strokeStart , strokeEnd , lineWidth(线宽,用点表示单位) ,miterLimit ,lineCap(线条结尾的样子) , lineJoin(线条之间的结合点的样子), lineDashPhase 和lin