CAShapeLayer使用

UIView *showView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];

[self.view addSubview:showView];

showView.backgroundColor = [UIColor whiteColor];

UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:CGPointMake(100 / 2.f, 100 / 2.f)

radius:100 / 2.f

startAngle:0

endAngle:1.5*M_PI

clockwise:YES];

CAShapeLayer *layer = [CAShapeLayer layer];

layer.frame         = showView.bounds;                // 与showView的frame一致

layer.strokeColor   = [UIColor greenColor].CGColor;   // 边缘线的颜色

layer.fillColor     = [UIColor greenColor].CGColor;   // 闭环填充的颜色

layer.lineCap       = kCALineCapRound;               // 边缘线的类型

layer.path          = path.CGPath;                    // 从贝塞尔曲线获取到形状

layer.lineWidth     = 9.0f;                           // 线条宽度

layer.strokeStart   = 0.0f;

layer.strokeEnd     = 0.0f;

[showView.layer addSublayer:layer];

CABasicAnimation *pathAnimation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"];

pathAnimation.duration = 5.0;

pathAnimation.fromValue = [NSNumber numberWithFloat:0.0f];

pathAnimation.toValue = [NSNumber numberWithFloat:1.0f];

[layer addAnimation:pathAnimation forKey:nil];

时间: 2024-10-24 05:42:45

CAShapeLayer使用的相关文章

CAShapeLayer的path动画

效果 源码 https://github.com/YouXianMing/Animations // // CAShapeLayerPathController.m // Animations // // Created by YouXianMing on 15/11/17. // Copyright © 2015年 YouXianMing. All rights reserved. // #import "CAShapeLayerPathController.h" #import &

用CAShapeLayer写股市K线图动画效果

说明 入市有风险,炒股需谨慎.(因项目需求,本人提供了写这种效果的源码) 效果 源码 // // ViewController.m // Path // // Created by YouXianMing on 15/5/11. // Copyright (c) 2015年 YouXianMing. All rights reserved. // #import "ViewController.h" @interface ViewController () @property (non

[控件] 动态实时设置CAShapeLayer贝塞尔曲线的坐标点

动态实时设置CAShapeLayer贝塞尔曲线的坐标点 效果图: 源码: PathDirectionView.h 与 PathDirectionView.m // // PathDirectionView.h // Path // // Created by XianMingYou on 15/2/27. // Copyright (c) 2015年 XianMingYou. All rights reserved. // #import <UIKit/UIKit.h> #import &qu

iOS学习:CAShapeLayer与UIBezierPath动画

CAShapeLayer与UIBezierPath动画: CAShapeLayer与UIBezierPath的动画,就离不开 CABasicAnimation:也将会使用到 strokeEnd.strokeStart.lineWidth 三个属性: 先做一条贝塞尔曲线: UIBezierPath *path = [UIBezierPath bezierPath]; [path moveToPoint:CGPointMake(40, 80)]; [path addCurveToPoint:CGPo

粒子效果 QQ粘性布局 (CAShapeLayer形状图层)

CAShapeLayer 可以根据一个路径生成一个形状: 1.基本功能的实现:(1)添加一个button:自定义button,创建一个类:绑定按钮:(2)在自定义的button类中,在awakeFromNib中对这个按钮进行初始化:设置圆角,背景颜色,字体颜色,字体大小:(3)调用取消高亮状态的方法:-setHightLighted:(4)awakeFromNib添加pan手势,(5)在pan方法中:获取偏移量:修改self.transform=CGAffine...:进行复位操作:(6)在aw

iOS关于CAShapeLayer与UIBezierPath的知识内容

使用CAShapeLayer与UIBezierPath可以实现不在view的drawRect方法中就画出一些想要的图形 . 1:UIBezierPath: UIBezierPath是在 UIKit 中的一个类,继承于NSObject,可以创建基于矢量的路径.此类是Core Graphics框架关于path的一个OC封装.使用此类可以定义常见的圆形.多边形等形状 .我们使用直线.弧(arc)来创建复杂的曲线形状.每一个直线段或者曲线段的结束的地方是下一个的开始的地方.每一个连接的直线或者曲线段的集

IOS开发基础篇--CAShapeLayer的strokeStart和strokeEnd属性

http://blog.csdn.net/yixiangboy/article/details/50662704 一.案例演示 最近有一个小需求,就是要做一个圆形进度条,大概样子如下: . 在不知道有CAShapeLayer的strokeStart和strokeEnd属性的时候,我采取的方法就是实时的 移除旧的CAShapeLayer 然后重绘这个圆形的CAShapeLayer.显然这种方式的效率是不高的.后来在一次看别人Demo的时候,发现别人使用了CAShapeLayer的strokeSta

CAShapeLayer

一 简介 1,CAShapeLayer继承至CALayer,可以使用CALayer的所有属性 2,CAShapeLayer需要与贝塞尔曲线配合使用才有意义:单独使用毫无意义 3,使用CAShapeLayer与贝塞尔可以实现不在view的drawRect方法中画出一些想要的图形: 4,CAShapeLayer属于Core  Animation框架,其动画渲染直接提交到手机的GPU当中,相较于view的drawRect方法使用CPU渲染而言,其效率极高, 能大大优化内存使用情况. drawRect

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