用CGContextRef类来画一个2d不透明的图形,下面用圆来演示
首先创建一个CGContextRef类的实例
CGContextRef context = UIGraphicsGetCurrentContext();
申明画圆
CGContextSetLineCap(context, kCGLineCapRound);
线的颜色
CGContextSetStrokeColorWithColor(context, kcolor(30, 185, 255, 1).CGColor);
线的宽度
CGContextSetLineWidth(context, 1.5f);
设置初始角度
CGFloat startAngle = M_PI/2;(顺时针画的)
最终角度
CGFloat endAngle = M_PI/2 +2*M_PI
开始画圆
CGContextAddArc(context, self.bounds.size.width/2, self.bounds.size.height/2, self.bounds.size.width/2 - 20, startAngle, endAngle, 0);
结束
CGContextStrokePath(context);
以上是在view的drawRect里面画的
添加动画
动画管理类申明类型(闪烁)
CABasicAnimation* rotate = [CABasicAnimation animationWithKeyPath: @"transform.rotation.z"];
动画后是否还原
rotate.removedOnCompletion = FALSE
重复次数
rotate.repeatCount = HUGE_VALF;(永久)
一次间隔的时间
rotate.duration = 0.25;
怎样重复动画
rotate.cumulative = true;
一次间隔的角度
[rotate setToValue: [NSNumber numberWithFloat: M_PI / 6]];
定义动画的节奏
rotate.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
动画行为以外的活动时间
rotate.fillMode = kCAFillModeForwards;
为试图添加动画
[_circleView.layer addAnimation:rotate forKey:@"rotateAnimation"];
[_circleView.layer removeAllAnimations];