今天为大家带来IOS 绘图中圆饼的实现

.h文件

#import <UIKit/UIKit.h>

@interface ZXCircle : UIView

@end

.m文件

#import "ZXCircle.h"

@implementation ZXCircle

-(void)drawRect:(CGRect)rect{

CGFloat w = self.bounds.size.width;

CGFloat h = self.bounds.size.height;

//数据数组

NSArray *array = @[@1,@2,@3,@4,@5,@6,@7,@8,@9,@10];

//颜色数组

NSArray *colorArray = @[[UIColor redColor], [UIColor greenColor], [UIColor yellowColor],[UIColor cyanColor],[UIColor blueColor],[UIColor lightGrayColor],[UIColor grayColor],[UIColor darkGrayColor],[UIColor magentaColor],[UIColor orangeColor]];

//下面这个循环是为了假如只有几种颜色 ,但是数据非常多的情况下 ,循环使用颜色的算法

//新建的颜色数组

NSMutableArray * colorArr=[NSMutableArray new];

//这个循环是 只显示颜色数组中前三个的颜色,%后面的数 是根据你的颜色数组中有多少颜色

for (int i=0; i<array.count; i++) {

[colorArr addObject:colorArray[i%10]];

}

CGContextRef ctx =UIGraphicsGetCurrentContext();

//中心点

CGPoint center = CGPointMake(w * 0.5, h * 0.5);

//半径

CGFloat radius = w * 0.3 - 5;

//起点角度

CGFloat startA = 0;

//终点角度

CGFloat endA =M_PI;

//扫过角度范围

CGFloat angle = 0;

for (int i = 0; i < array.count; i ++) {

//这句话是为了画完其中一个之后第二个的起点就是第一个的终点,这里面M_PI代表的是180度 55这个数值是数据源的总和

startA = endA;

angle = [array[i] integerValue] / 55 * M_PI * 2;

endA = startA + angle;

//弧形路径

//clockwise: 是否是按照时钟的方向旋转(是否顺时针)

UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:startA endAngle:endA clockwise:YES];

//连接中心, 构成扇形

[path addLineToPoint:center];

//填充颜色

[(UIColor *)colorArr[i] set];

CGContextAddPath(ctx, path.CGPath);

// 将上下文渲染到视图

CGContextFillPath(ctx);

}

}

@end

效果图如下: 请大家鉴赏这个非常简单的圆饼图 ,希望对你们以后的开发有所帮助!!谢谢!!

IOS 绘制圆饼图 简单实现的代码有注释的更多相关文章

  1. html+js+highcharts绘制圆饼图表的简单实例

    下面我就为大家带来一篇html+js+highcharts绘制圆饼图表的简单实例.我觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随我过来看看吧 实例如下: 1 2 3 4 5 6 7 8 ...

  2. ios(iphone/ipad)一个简单的用代码判断当前设备的方法

    直接NSLog(@"current_device:%@",[UIDevice currentDevice].model); 即可看出它输出的是当前设备,所以根据这个字符串可简单的判 ...

  3. matplotlib绘制圆饼图

    import matplotlib.pyplot as plt labels = ['Nokia','Samsung','Apple','Lumia'] values = [10,30,45,15] ...

  4. css 简单 返回顶部 代码及注释说明

    1. 最简单的静态返回顶部,点击直接跳转页面顶部,常见于固定放置在页面底部返回顶部功能 方法一:用命名锚点击返回到顶部预设的id为top的元素 html代码 <a href="#top ...

  5. iOS圆饼图和圆环的绘制,并且添加引线

    在开发中经常遇到统计之类的需求,特此封装了一个简单的圆饼图和圆环图,效果图如下 代码下载地址:https://github.com/minyahui/MYHCricleView.git

  6. 家庭版记账本app开发之关于(数据库查找出数据)圆饼图的生成

    这次完成的主要的怎样从数据库中调出数据.之后通过相关的数据,生成想要的圆饼图.以方便用户更加直观的看见关于账本的基本情况. 在圆饼图生成中用到了一些外部资源 具体的import如下: import c ...

  7. C# Graphic 绘制圆、三角形、椭圆、图片

    在form和panel上可以绘制图形,线段,圆,文字,图形等等. 绘制代码必须放在OnPaint()函数里面,因为窗体刷新的时候,都会调用该函数,重新刷新所绘的图. 示例代码在Panel上绘制图形来简 ...

  8. iOS绘制坐标图,折线图-Swift

    坐标图,经常会在各种各样的App中使用,最常用的一种坐标图就是折线图,根据给定的点绘制出对应的坐标图是最基本的需求.由于本人的项目需要使用折线图,第一反应就是搜索已经存在的解决方案,因为这种需求应该很 ...

  9. iOS CoreImage之滤镜简单使用

    代码地址如下:http://www.demodashi.com/demo/11605.html 老骥伏枥,志在千里 前记 最近一直在研究图像处理方面,既上一篇iOS Quart2D绘图之UIImage ...

随机推荐

  1. 【记录】SqlBulkCopy 跨数据库,表自定义导入

    使用场景: 一个数据库中的表数据,导入到另一个数据库中的表中,这两个表的表结构不一样,如果表结构一样的时候,导入非常简单,直接读取导入就行了,表结构不一样,就意味着需要加入一些判断,SqlBulkCo ...

  2. 使用canvas截图或者改变灰度

    简述 html5新添加的canvas API可以让我们对画布进行开发应用,典型的是可以使用canvas截图或者 手工绘制“迷你图”(即嵌入在文本中的高清小图片). 实现截图的方法很简单,就是创建一个c ...

  3. ZOJ Problem Set - 1337 Pi 最大公约数

    这道题目的关键在于怎么求两个整数的最大公约数,这里正好复习一下以前的知识,如下: 1.设整数a和b 2.如果a和b都为0,则二者的最大公约数不存在 3.如果a或b等于0,则二者的最大公约数为非0的一个 ...

  4. 【知识积累】使用Httpclient实现网页的爬取并保存至本地

    程序功能实现了爬取网页页面并且将结果保存到本地,通过以爬取页面出发,做一个小的爬虫,分析出有利于自己的信息,做定制化的处理. 其中需要的http*的jar文件,可以在网上自行下载 import jav ...

  5. Hive UDF初探

    1. 引言 在前一篇中,解决了Hive表中复杂数据结构平铺化以导入Kylin的问题,但是平铺之后计算广告日志的曝光PV是翻倍的,因为一个用户对应于多个标签.所以,为了计算曝光PV,我们得另外创建视图. ...

  6. SQL分页查询的几种方式

    需求:查询表dbo.Message,每页10条,查询第2页 1:TOP() ) * FROM dbo.Message WHERE Code NOT IN () Code FROM dbo.Messag ...

  7. C#中实现对象间的更新操作

    最近工作的时候遇到一个问题,根据Web端接收到的对象obj1,更新对应的对象值ogj2.先判断obj1中属性值是否为null, 若不等于null,则更新obj2中对应属性值:若等于null,则保持ob ...

  8. 扩展lamda表达中distinct按照字段去除重复

    首先,我们定义一个Student类来测试. public class Student { public int ID { get; set; } public string Name { get; s ...

  9. 转载:《TypeScript 中文入门教程》 10、混入

    版权 文章转载自:https://github.com/zhongsp 建议您直接跳转到上面的网址查看最新版本. 介绍 除了传统的面向对象继承方式,还流行一种通过可重用组件创建类的方式,就是联合另一个 ...

  10. 2分钟在eclipse下使用SpringBoot搭建Spring MVC的WEB项目

    1. 首先用eclipse创建一个maven工程, 普通maven工程即可 2. 修改pom如下: <?xml version="1.0" encoding="UT ...