由于工作业务需要,需要大量的统计图。 现在先从简单的开始整理,丰富自己帮助别人。 效果如图: CAShapeLayer有着几点很重要: 1. 它依附于一个给定的path,必须给与path,而且,即使path不完整也会自动首尾相接 2. strokeStart以及strokeEnd代表着在这个path中所占用的百分比 3. CAShapeLayer动画仅仅限于沿着边缘的动画效果,它实现不了填充效果 在画路径时,需要使用 [UIBezierPath bezierPathWithArcCenter:centerPointradius:radius startAngle:M_PI_2*3 endAngle:-M_PI_2 clockwise:NO];制定中心坐标,半径,起始角度和终止角度。很简单,不赘述。 基础设定: CAShapeLayer *layer = [CAShapeLayer layer]; layer.frame = showView.bounds; // 与showView的frame一致 layer.strokeColor = [UIColor greenColor].CGColor; // 边缘线的颜色 layer.fillColor = [UIColor clearColor].CGColor; // 闭环填充的颜色 layer.lineCap = kCALineCapSquare; // 边缘线的类型 layer.path = path.CGPath; // 从贝塞尔曲线获取到形状 layer.lineWidth = 4.0f; // 线条宽度 layer.strokeStart = 0.0f; //起始 layer.strokeEnd = 0.1f; //终止 demo中只暂时实现相对简单的效果,图1只需要在init输入简单的百分比,而图2的效果需要自己设定颜色和所占百分比的model数组。 PS:demo地址 https://github.com/Lian1990/ChartOne |
|