美文网首页
iOS CGContextRef

iOS CGContextRef

作者: Joymerry | 来源:发表于2020-03-21 19:12 被阅读0次

一、绘制饼状图

饼状图

饼状图的简单实现代码:

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        self.backgroundColor = [UIColor clearColor];
    }
    return self;
}
- (void)drawRect:(CGRect)rect {
    // Drawing code
    CGFloat viewHalfWidth = rect.size.width/2.0;
    CGFloat lineWidth = viewHalfWidth;
    
    /// 画笔宽度 = 整个大圆半径 - 内圆半径 (即,颜色区域)
    lineWidth = viewHalfWidth - _insideCircleWidth;
    
    CGFloat circleRadius = viewHalfWidth - lineWidth/2;
    CGPoint circleCenterPoint = CGPointMake(viewHalfWidth, viewHalfWidth);
    
    /// 取得上下文(画布)
    CGContextRef pieViewContext = UIGraphicsGetCurrentContext();
    /// 起始角度
    CGFloat startAngel = -M_PI/2;
    /// 终止角度
    CGFloat endAngel;
    for (int i =0; i < _colorsArray.count; i++) {
        /// 终止角度 = 开始角度 + 数据所占扇形比例*2Pi
        endAngel = startAngel + M_PI*2*_datasArray[i].doubleValue;
        
        /// 根据 圆心、半径、起始角度、终止角度、是否顺时针(画圆方向)
        CGContextAddArc(pieViewContext, circleCenterPoint.x, circleCenterPoint.y, circleRadius, startAngel, endAngel, NO);
        /// 涂抹颜色
        CGContextSetStrokeColorWithColor(pieViewContext, _colorsArray[i].CGColor);
        /// 画笔宽
        CGContextSetLineWidth(pieViewContext, lineWidth);
        /// 绘制
        CGContextStrokePath(pieViewContext);
        
        /// 下一个起始角度 = 但前终止角度
        startAngel = endAngel;
    }
}

相关文章

  • iOS CGContextRef

    一、绘制饼状图 饼状图的简单实现代码:

  • iOS CGContextRef

  • iOS CGContextRef画图

    CGContextRef context = UIGraphicsGetCurrentContext(); //设...

  • iOS CGContextRef/UIBezierPath(绘图

    绘图的底层实现方法 注意:在drawRect方法中系统会默认创建一个上下文(C语言类型)在其他方法中不会有这样一个...

  • iOS动画 —— CGContextRef实例

    介绍 CGConTextRef相当于一个画布,我们可以在上面画各种各样的图形,而这个画布又是在 View 上。所以...

  • iOS绘制涂鸦

    其实绘图过程也就点成线的过程,在ios绘图需要使用到的CGContextRef和CGMutablePath...

  • iOS图形绘制之CGContextRef

    今天做页面需要用到绘图绘制虚线,由于平时不怎么用到绘图,对绘图的基础也不是很好,所以写一篇关于绘图的文章,巩固下基...

  • iOS CGContextRef&CGMutablePa

    简单的四句介绍 Quartz是一个二维绘图引擎,使用的是CoreGraphics库,同时支持iOS和Mac系统 C...

  • iOS星盘,浅谈如何实现

    IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、...

  • CGContextRef

    /* CoreGraphics - CGContext.h */ /** Graphics state funct...

网友评论

      本文标题:iOS CGContextRef

      本文链接:https://www.haomeiwen.com/subject/wmpuyhtx.html